Java Maven故障保护:验证始终返回退出代码0
我在集成测试中遇到了一个异常恼人的问题,Maven failsafe插件返回的退出代码为0,而不管测试的实际结果如何: 例如,运行“mvn验证”显示:Java Maven故障保护:验证始终返回退出代码0,java,maven-3,java-8,maven-failsafe-plugin,Java,Maven 3,Java 8,Maven Failsafe Plugin,我在集成测试中遇到了一个异常恼人的问题,Maven failsafe插件返回的退出代码为0,而不管测试的实际结果如何: 例如,运行“mvn验证”显示: [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 23.519s [INFO] Finished at: Tue Sep 16 13:12:55 BST 20
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 23.519s
[INFO] Finished at: Tue Sep 16 13:12:55 BST 2014
[INFO] Final Memory: 53M/512M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-failsafe-plugin:2.6:verify (verify) on project [my.project]: There are test failures.
故障保护配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.17</version>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven故障保护插件
2.17
集成测试
集成测试
验证
验证
我以前从未见过这个问题,它使我的CI堆栈变得毫无价值,因为如果测试失败,构建不会失败!这与我过去做过的类似事情之间的唯一区别是,我在这里使用java 8。解决了我自己的问题-看起来maven jetty插件的stop jetty执行导致了退出代码的奇怪行为。删除stop jetty执行修复了错误(我的CI无论如何都会杀死jetty)这实际上是故障保护特定的事情吗?尝试在没有项目的目录中运行Maven——这会导致失败——并查看错误代码。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.17</version>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>