У меня есть многомодульный проект, и я определил отказоустойчивость в корневом pom следующим образом:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19</version>
<configuration>
<includes>
<include>**/*IntegrationTest.java</include>
<include>**/*JourneyTest.java</include>
<include>**/*CucumberFeatureTest.java</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<configuration>
<excludes>
<exclude>**/*IntegrationTest.java</exclude>
<exclude>**/*JourneyTest.java</exclude>
<exclude>**/*CucumberFeatureTest.java</exclude>
</excludes>
</configuration>
</plugin>
Failsafe не определен нигде в других моих помпонах. Если я запускаю mvn verify
, он пропускает интеграционные тесты (запускает модульные тесты). Но если я запускаю mvn test-compile failsafe:integration-test
, он запускает интеграционные тесты.
Я предполагаю, что отказоустойчивость должна работать в обеих этих ситуациях. Так почему же он не запускается, когда я набираю mvn verify
?
ОБНОВЛЕНИЕ: только что заметил, что это было обернуто вокруг этих тегов:
<build>
<pluginManagement> <!-- oops -->
<plugins>
<plugin>
Я чувствую, что это объясняет причину, но я не уверен, почему модульные тесты по-прежнему работают так, как вы ожидаете с mvn verify
и mvn test
. Почему в этом отношении surefire работает иначе, чем failsafe?