Отвечая на ваш вопрос о том, почему это вызывает it-tests
. Фактически, он не активирует ни один из профилей, поэтому используется конфигурация плагина по умолчанию, которая имеет **/*IT.java
в списке включения. Таким образом, он запускает все IT
тесты по умолчанию.
Это странный подход к управлению выполнением плагинов по профилям. Я сомневаюсь, что есть разумный способ проверить имена профилей, которые вы описываете. Я бы порекомендовал другой подход здесь.
Подход 1. Используйте <id>
и cli с @
Вы можете просто указать два исполнения плагина с помощью id
, а затем вы можете сделать это: Как выполнить maven Выполнение плагина непосредственно из командной строки?
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<id>it-tests</id>
<phase>none</phase> <!-- detach this execution from default lifecycle -->
<configuration>
<testSourceDirectory>test/test-it/java</testSourceDirectory>
<includes>
<include>**/*IT.java</include>
</includes>
</configuration>
</execution>
<execution>
<id>functional-tests</id>
<phase>none</phase> <!-- detach this execution from default lifecycle -->
<configuration>
<testSourceDirectory>test/test-ft/java</testSourceDirectory>
<includes>
<include>**/*FT.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
Теперь вы можете запустить его из командной строки:
mvn failsafe:integration-test@it-tests
mvn failsafe:integration-test@functional-tests
Обновление : указывать не нужно goals
, поскольку оно относится только к жизненному циклу, мы в любом случае вводим его в командной строке.
Подход 2. Используйте <skip>
и свойства
Сохраняйте оба выполнения как часть жизненного цикла, но управляйте выполнением предоставляя флаги пропуска. Т.е. определить два свойства, например skip.tests.it=true
, skip.tests.ft=true
и добавить <skip>${skip.tests.ft}</skip>
в соответствующие разделы конфигурации. Тогда вы можете просто сделать
# run with no tests by default
mvn verify
# run with only FT
mvn verify -Dskip.tests.ft=false
# run with all tests
mvn verify -Dskip.tests.ft=false -Dskip.tests.it=false
, чтобы запустить полный жизненный цикл вместе с нужными тестами.