运行主项目后,每个下游项目都有测试结果,但“最新聚合测试结果”是没有测试的。如何配置 Jenkins 使所有测试结果显示在聚合列表中?

最佳答案

聚合下游测试结果 不明显,也没有记录。下面的步骤是从 How To Aggregate Downstream Test Results in Hudson 合成的。

出于某种原因,这个 shell 命令没有在下面呈现,在 b 的配置的第 2 步

xml='<testsuite tests="3">
<testcase classname="foo" name="ASuccessfulTest"/>
<testcase classname="foo" name="AnotherSuccessfulTest"/>
<testcase classname="foo" name="AFailingTest">
  <failure type="NotEnoughFoo"> details about failure </failure>
</testcase>
</testsuite>'

echo $xml > results.xml

要进行聚合,您需要将指纹工件从上游作业传递到下游作业。我对此的解决方案是安装 Copy Artifact Plugin

对于我的测试设置,我创建了两个自由式作业 ab
a 的配置:
  • 执行shell : echo $(date) > aggregate
  • 聚合下游测试结果 :勾选 自动聚合... 选项
  • 构建其他项目 : 设置 Projects 来构建 b
  • 记录文件指纹以跟踪使用情况 : 将 文件设置为指纹 aggregate(来自上面的 echo 命令)
  • b 的配置:
  • 从另一个项目 复制工件:设置:
  • 项目名称 a
  • 哪个构建 触发此作业的上游构建
  • 要复制的工件 : aggregate
  • 检查 指纹文物
  • 执行shell : 从
  • 上面输入xml=... 命令
  • 发布 JUnit 测试结果报告 : 将测试报告 XMLs 设置为 results.xml

  • 这应该足以让 a 聚合 b 的测试结果。我不确定是否有一种方法/插件可以根据下游结果更改 a 的状态(例如,如果 b 失败,那么 a 将追溯失败)。

    关于jenkins - 下游的聚合结果是 Jenkins 中的 ‘no test’,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19808181/

    10-14 16:15
    查看更多