Jenkins MultiJob 插件不聚合下游测试结果

Posted

技术标签:

【中文标题】Jenkins MultiJob 插件不聚合下游测试结果【英文标题】:Jenkins MultiJob Plugin does not aggregate downstream test results 【发布时间】:2014-04-08 23:53:09 【问题描述】:

我正在使用 jenkins multijob 插件在同一构建阶段执行多个并行构建,并且我想在主 multijob 项目中显示测试结果,因此我选择了一个构建后操作步骤来“聚合下游测试”结果”并​​选择“自动聚合所有下游测试”和“在结果中包含失败的构建”这两个选项,但是当作业完成并且我进入主多作业项目时,它在“最新测试结果”链接下显示“无测试”...

还有其他人遇到过这个问题吗?我并行运行的下游“子”项目是多配置项目。

【问题讨论】:

我正在尝试做同样的事情。当您单击构建上的Aggregated Test Result 链接时,您看到Fingerprinting not enabled on this build. Test aggregation requires fingerprinting. 了吗?我尝试为下游作业和多作业打开指纹,但没有成功。 看起来这是一个未解决的问题:https://issues.jenkins-ci.org/browse/JENKINS-18768 【参考方案1】:

正如之前的海报所指出的,这是 Jenkins JIRA 中的一个未解决问题,并且不起作用。有一种解决方法可以实现您的目标。您将需要 Copy Artifact Plugin 并将测试结果文件存档为您正在执行测试运行的作业中的工件。

安装此工具并正确配置测试运行作业后,转到 Multijob 并在所有测试阶段之后为您希望从中获得测试结果的每个作业添加一个构建步骤“从另一个项目复制工件”。您可以使用“由永久链接指定”并使用“上次构建”永久链接来始终检索最新的工件。选择要复制的工件(即 *.xml),然后将目标目录输入为“job1”之类的内容。如果您添加多个构建步骤以从另一个项目复制工件,只需将复制工件的目标目录命名为类似“job2”、“job3”等。

然后在您的 Multijob 中选择一个 Post-build 操作,就像您要发布 JUnit 测试结果报告(或您喜欢的任何内容)并输入 **/job*/*.xml(或类似内容)一样。

这就是我所做的,而且效果很好。它在设置中有点手动,但一旦配置它就可以很好地工作。

【讨论】:

您是如何解决这个问题的:找到了测试报告,但没有一个是新的。测试运行了吗?构建步骤“发布 JUnit 测试结果报告”将构建结果更改为 FAILURE Finished: FAILURE 现在我只执行这个shell:find。 -name *.xml -print -exec touch \; #hack

以上是关于Jenkins MultiJob 插件不聚合下游测试结果的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins 测试结果趋势图/图表用于聚合的下游测试结果?

Jenkins配置多个项目按照顺序构建

Jenkins触发上下游构建

为构建聚合/汇总报告的 Jenkins 插件

jenkins 2 pipeline怎么获取各个阶段的log

标记Jenkins构建