在詹金斯中汇总测试结果

时间:2019-01-22 03:34:18

标签: jenkins jenkins-pipeline

我有一个Jenkinsfile,它通过调用build job: ...来调用多个子作业。这些子作业中的每一个都运行一堆单元测试。有什么方法可以收集所有这些测试结果,并将其作为正在调用它们的工作的测试结果的一部分?本质上,如果我有3个工作,每个工作有10个测试,我希望此结果有30个测试结果。我以为propagate可能会这样做,但事实并非如此。

2 个答案:

答案 0 :(得分:0)

您可以将构建测试结果存档为工件,并使用Copy Artifact plugin提供的copyArtifact构建步骤将其复制到您的主要作业中。

主要工作Jenkinsfile的示例:

build 'sub-job'    
node('master') {
    copyArtifacts projectName: 'sub-job', filter: 'results.xml', selector: lastCompleted()
    junit 'results.xml' // or whatever you use to publish test results
}

答案 1 :(得分:0)

来自构建步骤文档

  

传播(可选)

     

如果已设置,则下游构建是否成功(蓝色)   球),此步骤将失败。如果禁用,则即使该步骤成功,   下游构建不稳定,失败等;使用结果   返回值的属性。

虽然可行,但仍然是Copy Artifact Plugin

stages {
     stage('Copy Archive') {
         steps {
             script {
                 step ([$class: 'CopyArtifact',
                 projectName: 'Create_archive',
                 filter: "packages/infra*.zip",
                 target: 'Infra']);
             }
         }
     }

只需确保过滤报告即可。