下游的汇总结果是詹金斯的"无测试"

mar*_*ria 3 jenkins

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

Zac*_*ung 9

汇总下游测试结果并不明显,也没有记录.以下步骤是根据如何在Hudson中聚合下游测试结果合成的.

出于某种原因,在b的配置的第2步,此shell命令未在下面呈现

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
Run Code Online (Sandbox Code Playgroud)

要聚合,您需要将手指打印的工件从上游作业传递到下游作业.我的解决方案是安装Copy Artifact Plugin.

对于我的测试设置,我创建了两个自由式作业ab.

a的配置:

  1. 执行shell:echo $(date) > aggregate
  2. 聚合下游测试结果:选中自动聚合...选项
  3. 建设其他项目:设置项目,以建立b
  4. 文件记录指纹,以跟踪使用情况:设置文件指纹aggregate(从echo上面的命令)

b的配置:

  1. 从另一个项目复制工件:set:
    1. 项目名称a
    2. 哪个构建Upstream构建触发了这项工作
    3. 要复制的工件:aggregate
    4. 检查指纹工件
  2. 执行shell:xml=...从上面输入命令
  3. 发布JUnit测试结果报告:将测试报告XML设置为results.xml

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

  • 这有效,但请记住,“聚合”文件也需要存档,我们不存档任何内容,因此我必须明确添加 (2认同)