我有两个不同的自由式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个工作(和计数)有这些症状。为了记录,它们是:
向ActiveMQ作业添加-B
(其他人已经拥有它)将其向前移动到实际编译失败的程度。不幸的是,这项工作仍然没有成功,所以我无法确定-B
是否确实修复了这项工作。
我在本地尝试了Gora,结果与Jenkins相同。
UPDATE2
我已经在主要的Gora pom中找到了<testFailureIgnore>false</testFailureIgnore>
,但是grep告诉我{Wildis Core项目中没有testFailureIgnore
。
UPDATE3
Wildfly核心故障显然可以归结为Surefire 2.17
中的错误答案 0 :(得分:2)
尝试在调试模式(-X)下运行Maven,以查看Maven在开始实际运行测试之前认为该属性是什么。如果某人或某事已经对POM中的值进行了硬编码(例如<testFailureIgnore>false</testFailureIgnore>
),则可能忽略了您提供的命令行值。
还要确保Jenkins作业不是Maven作业类型。 Stephen Connolly写了一篇关于为什么Jenkins Maven job type is evil和他明确提到测试忽略切换的博客文章是由插件修改的一个项目。该帖子的评论之一是:
抱歉testFailureIgnore为false而不是skip是真的......,例如
<configuration> <testFailureIgnore>false</testFailureIgnore> <configuration>
这将确保不会跳过模块的测试...除非Maven作业类型使用自动魔法快速播放