You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

不同工作空间并行生成的Allure Report仅显示一个的问题排查

Jenkins并行生成Allure Report仅显示一份的问题排查与解决

核心原因分析

  • 报告路径冲突:并行任务默认使用相同的Allure结果目录(如target/allure-results),后执行的任务会覆盖先执行任务的报告文件,最终仅保留最后生成的那份。
  • Allure插件配置未区分并行任务:Pipeline中调用allure步骤时未指定唯一的结果路径,插件默认读取单一目录,只会生成一份汇总报告而非两份独立报告。
  • 工作空间未隔离:若并行任务共享同一Jenkins工作空间,两个任务的报告文件会互相覆盖,导致仅一份可展示。

解决方法

1. 为每个并行任务指定独立的结果目录

在测试命令中通过参数指定不同的Allure结果路径,同时在allure步骤中对应读取该路径:

parallel(
    "UI测试任务": {
        stage('执行UI测试') {
            // 指定独立的结果目录
            sh 'mvn test -Dallure.results.directory=target/allure-results-ui'
            // 读取对应目录生成报告
            allure includeProperties: false, results: [[path: 'target/allure-results-ui']]
        }
    },
    "接口测试任务": {
        stage('执行接口测试') {
            sh 'mvn test -Dallure.results.directory=target/allure-results-api'
            allure includeProperties: false, results: [[path: 'target/allure-results-api']]
        }
    }
)

2. 确保并行任务使用独立工作空间

通过为每个并行任务分配独立的Jenkins agent,实现工作空间隔离,避免文件覆盖:

parallel(
    "任务A": {
        agent { label 'test-agent-01' }
        stage('执行任务A测试') {
            sh 'mvn test'
            allure results: [[path: 'target/allure-results']]
        }
    },
    "任务B": {
        agent { label 'test-agent-02' }
        stage('执行任务B测试') {
            sh 'mvn test'
            allure results: [[path: 'target/allure-results']]
        }
    }
)

3. 汇总多目录生成独立/合并报告

若需要在构建后同时展示两份独立报告,可在并行任务结束后,通过指定多个结果路径生成汇总报告(或借助插件支持生成多份独立报告):

stage('生成所有测试报告') {
    allure includeProperties: false, results: [
        [path: 'target/allure-results-ui'],
        [path: 'target/allure-results-api']
    ]
}

日志排查要点

查看构建日志中Allure插件的输出,若出现Overwriting existing result file类提示,可直接确认是路径冲突导致文件覆盖,优先按方法1调整路径配置。

内容的提问来源于stack exchange,提问作者Alexis_Shef_777

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 02:45:08