我有两个不同的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种工作(而且还在不断增加),并伴有这些症状。作为记录,它们是:

  • ActiveMQ(先前未列出)
  • Wildfly Core
  • Gora

  • -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/

    10-14 19:51
    查看更多