当前位置: 首页 > 面试题库 >

如何使Jenkins在Maven 2构建中实现--fail-fast?

云弘壮
2023-03-14
问题内容

我正在尝试使用Jenkins构建多模块Maven项目。

当我使用 与* Jenkins 相同的环境 (variables / settings.xml / user)在 命令行
上构建相同的项目时,测试失败会导致构建立即失败:
*

Failed tests:
  testSomething(com.package_name.TestSomethingOrTheOther)

Tests run: .., Failures: 1, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] There are test failures.
...
# Build fails immediately

詹金斯 建造时的位置:

Failed tests:
  testSomething(com.package_name.TestSomethingOrTheOther)

Tests run: .., Failures: 1, Errors: 0, Skipped: 0

[ERROR] There are test failures.
...
# Build continues to other modules
...
[INFO] Reactor Summary:
[INFO] ------------------------------------------------------------------------
[INFO] parent ................................................ SUCCESS [.....s]
[INFO] module-that-failed .................................... SUCCESS [.....s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------

生成状态表明所有模块和父级都是 成功的 ,实际上,这些应该是失败的。

我如何像詹姆斯在命令行中那样让詹金斯在maven构建中强制执行快速失败?

提前致谢。


问题答案:

Jenkins默认情况下会忽略测试失败,然后将构建标记为不稳定(如果存在)。

控制该参数的参数是:testFailureIgnore(请参见surefire插件文档)

我从未尝试过,但是我会尝试在jenkins作业配置上覆盖该设置:

-Dmaven.test.failure.ignore = false



 类似资料:
  • SonarQube版本=5.2 所以我注意到我的应用程序在声纳方面没有通过质量门,但构建仍然是绿色的。 我在谷歌上搜索了如何使sonar无法构建,并得到了一个名为“构建断路器”的插件的结果,该插件因我使用的版本而被贬低(http://docs.sonarqube.org/display/plug/build+breaker+plugin)。我找不到关于如何在这个版本中实现相同的构建中断行为的信息。

  • 问题内容: 我经常发现用Java-8之前的设置来实现构建器模式很麻烦。总是有很多几乎重复的代码。建造者本身可以被视为样板。 实际上,有一些代码重复检测器,它们几乎会将使用java-8之前版本的工具构建的构建器的每种方法都视为所有其他方法的副本。 因此,请考虑以下类以及它是Java-8之前的构建器: 如何使用java-8工具实现构建器模式? 问题答案: 构建 可变对象 (稍后将讨论不可变对象)的想法

  • 问题内容: 我有三个管道项目,项目a,项目b和项目c。project-c需要一个参数。成功完成project-a或project- b时,我想触发带有参数的project-c的构建。 我可以在管道中使用以下代码在project-a和project-b中执行此操作: 但这需要两名执行者。我希望project-a或project-b在使用参数运行project-c之前完全完成。 问题答案: 您的管道很

  • 问题内容: 我正在为公司中的一些自定义报告创建一个构建后插件。我从此处提供的詹金斯“ hello world”示例开始: https://wiki.jenkins- ci.org/display/JENKINS/Plugin+tutorial 这很棒。我能够加载该插件并在我的Jenkins实例中使用它而没有任何问题。 为了使项目顺利进行,我能够将HelloWorldBuilder移至另一个文件夹,

  • 我是新来的詹金斯!我设法在Jenkins中克隆了GIT hub repo,现在试图在Jenkins中构建提取的maven项目。我从GITHUB获取了7个项目,它们相互依赖,也就是说,一些项目在其POM中为其他项目定义了依赖关系。 以下是我的maven配置(对不起,不能在这里张贴图片,见粗体) 根POM myFirstProject/POM.xml 目标和选项清洁包安装 MAVEN_OPTS 备用设