我想使用maven的故障保护,插件运行一些集成测试。 如果测试失败,我想Maven来构建失败,而不是使成功。
Tests run: 103, Failures: 1, Errors: 0, Skipped: 26
[INFO] BUILD SUCCESS*
我怎么可以配置它,建造不是成功是什么?
我的故障安全插件配置为:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${failsafe.version}</version>
<configuration>
<systemProperties>
<CI_INTEGRATION_OVERRIDE_PATH>${basedir}/..</CI_INTEGRATION_OVERRIDE_PATH>
</systemProperties>
<includes>
<include>**/integration/**/*.java</include>
</includes>
<excludes>
<exclude>**/integration/**/*TestSuite.java</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
安德鲁指出,正确的解决方法是使用故障安全为目的。 集成测试的目标是专门设计不构建失败。 如果你想构建失败,调用mvn verify
或mvn failsafe:verify
为了verify
目标努力,它需要读取它默认被写入集成测试的结果${project.build.directory}/failsafe-reports/failsafe-summary.xml
所以请确保是如何产生。
此外,你必须确保你的绑定maven-failsafe-plugin
配置两个integration-test
目标和verify
在目标executions
的部分。
未能添加这类原因会导致随后的Maven构建,而不是没有它,当集成测试失败。
既然你正在运行mvn clean install
两个integration-test
和verify
阶段应该执行。 根据故障安全插件文档的failsafe:integration-test
和failsafe:verify
目标绑定到这些阶段,所以我不相信额外的通话failsafe:integration-test
是必需的。
不过话虽如此,我不知道我信任的故障安全插件文档。 我回答了类似的问题在今年早些时候的人。 原来,他曾明确地结合每个目标的正确的相位,然后故障安全发挥预期。 可能是值得一试。
解。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
<executions>
<execution>
<id>unit-test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
<excludes>
<exclude>**/*IntegrationTest.java</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
<enableAssertions>false</enableAssertions>
<includes>
<include>**/*IntegrationTest.java</include>
</includes>
<systemPropertyVariables>
<integration>${integration}</integration>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>