我有两个不同的Freestyle Jenkins作业,如下所示(从作业日志中删除了构建命令):mvn -Dcloudbees.private.release.repository.off=true -Dcloudbees.private.snapshot.plugin.repository.off=true -Dcloudbees.private.release.plugin.repository.off=true -Dcloudbees.central.repository.off=true -Dcloudbees.private.snapshot.repository.off=true clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true -V -Dcheckstyle.skip=true -Dpmd.skip=true -Dgpg.skip=true -B -e
和mvn clean install cobertura:cobertura -DallTests -Dcobertura.report.format=xml -Dmaven.test.failure.ignore=true -V -Dcheckstyle.skip=true -Dpmd.skip=true
他们分别这样结束:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project gora-core: There are test failures.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test (default-test) on project wildfly-domain-management: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test failed:
我所有的搜索都告诉我-Dmaven.test.failure.ignore=true
应该可以解决问题,所以我受阻了。
请注意,我没有对这些项目的写权限。我只是在尝试进行编译以准备SonarQube分析。
UPDATE1
我原来有3种工作(而且还在不断增加),并伴有这些症状。作为记录,它们是:
将
-B
添加到ActiveMQ作业(其他人已经拥有了)将其移至实际编译失败的地步。不幸的是,这项工作仍然没有成功,所以我不能确定-B
确实可以解决该工作。我在本地尝试了Gora,结果与Jenkins相同。
UPDATE2
从那以后,我在主要的Gora pom中找到了
<testFailureIgnore>false</testFailureIgnore>
,但是grep告诉我,在Wildfly Core项目中testFailureIgnore
不在任何地方。UPDATE3
Wildfly Core故障显然可以归因于Surefire 2.17中的错误
最佳答案
尝试在 Debug模式(-X)中运行Maven,以查看该Maven在实际开始运行测试之前认为该属性的含义。如果某人或某物已将POM中的值硬编码(例如<testFailureIgnore>false</testFailureIgnore>
),则可能会忽略您提供的命令行值。
还要确保Jenkins作业不是Maven作业类型。 Stephen Connolly写了一篇博客文章,介绍Jenkins Maven job type is evil的原因,他明确提到测试忽略切换是插件在后台修改的一项。关于该帖子的评论之一是:
关于maven - -Dmaven.test.failure.ignore = true设置,但是在测试失败时仍然生成错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33244655/