我有一个Jenkinsfile
,它通过调用build job: ...
来调用多个子作业。这些子作业中的每一个都运行一堆单元测试。有什么方法可以收集所有这些测试结果,并将其作为正在调用它们的工作的测试结果的一部分?本质上,如果我有3个工作,每个工作有10个测试,我希望此结果有30个测试结果。我以为propagate
可能会这样做,但事实并非如此。
答案 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']);
}
}
}
只需确保过滤报告即可。