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

配置hudson maven作业以在出现测试失败时继续构建,但仅在没有测试失败时部署

周辉
2023-03-14
问题内容

我为我们的maven多项目创建了一个hudson作业,其中包含5个模块,以将SNAPSHOT工件部署到maven存储库。没关系,只要它成功构建且没有测试失败即可。但是,现在我想满足以下要求:

  • 当模块发生测试故障时,构建应继续扩建并测试其他模块,但变为黄色。使用-Dmaven.test.failure.ignore=true可以完成,但在下一个要求时会失败。
  • 当模块发生测试故障时,不应将任何工件部署到Maven存储库。 其他项目依赖于该项目的快照,而这些项目只想使用 没有任何测试失败的最新快照
  • 最好使用hudson maven集成代替免费脚本,我们会获得hudson报告页面(每个模块的红色/黄色/蓝色状态,构建日志错误颜色…)。专门运行两次maven构建(第一个mvn test -Dmaven.test.failure.ignore=true,不是mvn deploy -DskipTests)不是解决方案,因为这会导致性能下降,并且混淆了hudson报告页面,而且不是原子的(它在第二个构建中再次从存储库更新)。

有什么办法可以做到这一点?


问题答案:

有一个后构建选项,称为将 工件部署到Maven存储库 。如果 即使构建不稳定 ,也没有选择 Deploy
,那么这意味着如果测试失败,它将不会部署任何东西。与-fae命令中的一起,事情应该以您期望的方式工作



 类似资料:
  • 我按照cypress在他们的文档中推荐的方式编写测试,即每个测试有多个断言,但是用这种方式编写测试时会出现一个问题,那就是如果断言失败,测试执行就会停止。 我希望每个测试有多个断言,如果其中一个失败,测试将失败,但将继续测试执行,所以在最后,我将能够看到测试中失败的所有断言,而不仅仅是第一个失败的断言。 提前感谢!

  • 问题内容: 我已经设置了一个Jenkins服务器来运行Selenium测试。生成脚本是用Ant(CentOS 6.3上的v 1.7.1)编写的,并且测试在Sauce Labs上运行。我通过外壳执行构建: 问题是测试失败时,詹金斯(Jenkins)将其标记为成功。我可以通过将设置为来避免这种情况,请参阅: 但是,这并不理想,因为Jenkins会在遇到第一个故障时终止构建。构建完成后是否可以检查失败,

  • 我已经设置了一个Jenkins服务器来运行Selenium测试。构建脚本是用Ant(CentOS 6.3上的V1.7.1)编写的,测试在Sauce实验室上运行。我通过shell执行构建:

  • 问题内容: 我有一个Jenkins作业,它通过Nightwatch.js框架在Browserstack上运行Selenium测试。我们有一套完整的测试程序,可以让守夜人在不同的进程中运行,并且我们需要一种在所有测试运行后将通过/失败值返回给Jenkins的方法。 我一直在尝试使用Nightwatch挂钩在每个模块的末尾运行一段代码,但是我无法弄清楚需要采取什么措施才能使Jenkins作业可以访问该

  • 我的Junit测试使用DBUnit,从Eclipse运行时运行良好。但是,使用Maven运行相同的测试会导致以下一项测试失败: 我已经连续几次尝试从EclipseGUI(“作为JUnit测试运行”)运行该测试和整个测试集,但它们从未失败——但从Maven来看,它们确实失败了。 我对每个测试都使用@数据库设置,但这足以真正重置数据库吗?我还认为Maven可能会并行运行测试,所以我尝试在pom.xml

  • 我有一些mocha/chai/chai-http测试,它们遵循下面的结构,但是,每当一个测试失败时,我会得到一个 ,我似乎不知道它的来源。 UnhandledPromiserEjectionWarning:未处理的承诺拒绝。此错误可能是由于不带catch块的异步函数内部引发的,或者是由于拒绝了未用。catch()处理的承诺。 我尝试在 后面添加一个 承诺.reject(err)/code>,但也不