【发布时间】:2015-11-25 18:10:24
【问题描述】:
我有一个多模块项目,我在根 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 没有在我的其他 pom 中的任何其他地方定义。如果我运行mvn verify,它会跳过集成测试(它会运行单元测试)。但如果我运行mvn test-compile failsafe:integration-test,它会运行集成测试。
我假设故障安全应该在这两种情况下运行。那么为什么当我输入mvn verify 时它不运行呢?
更新:刚刚注意到这是围绕这些标签:
<build>
<pluginManagement> <!-- oops -->
<plugins>
<plugin>
我觉得这解释了原因,但我不确定为什么 unit 测试仍然像您对 mvn verify 和 mvn test 所期望的那样运行。为什么在这方面,surefire 与 failsafe 的工作方式不同?
【问题讨论】:
-
我相信 Surefire 包含在标准 POM 中,但 Failsafe 没有。
标签: java maven maven-failsafe-plugin