-Dmaven.test.failure.ignore=true集,但在测试失败时仍会生成错误
我有两个不同的自由式Jenkins作业,如下所示(从作业日志中提取构建命令):-Dmaven.test.failure.ignore=true集,但在测试失败时仍会生成错误,maven,unit-testing,jenkins,Maven,Unit Testing,Jenkins,我有两个不同的自由式Jenkins作业,如下所示(从作业日志中提取构建命令): mvn-Dcloudbees.private.release.repository.off=true-Dcloudbees.private.snapshot.plugin.repository.off=true-Dcloudbees.private.release.repository.off=true-Dcloudbees.private.snapshot.repository.off=true-clean org
mvn-Dcloudbees.private.release.repository.off=true-Dcloudbees.private.snapshot.plugin.repository.off=true-Dcloudbees.private.release.repository.off=true-Dcloudbees.private.snapshot.repository.off=true-clean org.jacoco:jacoco-maven插件:准备代理安装-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]无法执行goal org.apache.maven。插件:maven surefire插件:2.12:project gora core上的测试(默认测试):存在测试失败。
[ERROR]无法执行goal org.apache.maven.plugins:maven surefire插件:2.17:project wildfly域管理上的测试(默认测试):执行goal org.apache.maven.plugins:maven surefire插件:2.17:test失败:
我所有的搜索都告诉我,-Dmaven.test.failure.ignore=true
应该可以做到这一点,所以我被阻止了
请注意,我没有这些项目的写权限;我只是试图编译,为SonarQube分析做准备
更新1
事实证明,我有3份有这些症状的工作。记录在案的是:
-B
添加到ActiveMQ作业(其他人已经拥有了它)将其向前移动到实际编译失败的点。不幸的是,作业仍然没有成功,因此我不能确定-B
是否确实修复了作业
我在当地试过Gora,结果和Jenkins一样
更新2
我在主要的Gora pom中发现了false
,但grep告诉我testFailureIgnore
在Wildfly核心项目中不存在
更新3
Wildfly Core的失败显然可以归因于中的一个bug。在开始实际运行测试之前,尝试在调试模式(-X)下运行Maven,看看Maven认为该属性是什么。如果某人或某物在POM中硬编码了值(例如,
false
),则可能会忽略您提供的命令行值
还要确保Jenkins作业不是Maven作业类型。Stephen Connolly写了一篇博客文章,解释了为什么会出现这种情况,他明确提到测试忽略切换是插件在封面下修改的一项。关于该帖子的评论之一是:
抱歉testFailureIgnore为false而不是skip为true…,例如
假的
这将确保模块的测试不会被跳过。。。除非Maven的工作类型是在玩弄它的自动魔法
FWIW,我在发布的错误消息中看到了两个不同版本的surefire插件。Surefire的最新版本是2.19。版本可以更新吗?我没有更新poms的权限。我处于只读状态,试图在nemo.SonarQube.org上执行SonarQube分析。我还将尝试在调试模式(
-X
)下运行Maven,以查看Maven在实际运行测试之前认为该属性是什么。如果有人在POM中硬编码了值(例如,false
),那么它可能会忽略您提供的命令行值。两个作业在其整个日志中都显示true
(虽然其中一个作业确实包含${maven.test.failure.ignore}
,但我认为这意味着应该应用命令行上提供的值)我也是这样读的。我想知道我们是否会看到类似于false
。如果在没有Jenkins的情况下运行构建会发生什么?詹金斯项目是自由泳还是马文?马文团队的斯蒂芬·康诺利。这些已经是自由式的工作了。我编辑了这篇文章来反映这一点。