-Dmaven.test.failure.ignore = true set,但在测试失败时仍然存在错误

时间:2015-10-20 18:54:55

标签: maven unit-testing jenkins

我有两个不同的自由式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个工作(和计数)有这些症状。为了记录,它们是:

  1. ActiveMQ(之前未列出)
  2. Wildfly Core
  3. Gora
  4. 向ActiveMQ作业添加-B(其他人已经拥有它)将其向前移动到实际编译失败的程度。不幸的是,这项工作仍然没有成功,所以我无法确定-B是否确实修复了这项工作。

    我在本地尝试了Gora,结果与Jenkins相同。

    UPDATE2

    我已经在主要的Gora pom中找到了<testFailureIgnore>false</testFailureIgnore>,但是grep告诉我{Wildis Core项目中没有testFailureIgnore

    UPDATE3

    Wildfly核心故障显然可以归结为Surefire 2.17

    中的错误

1 个答案:

答案 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作业类型使用自动魔法快速播放