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

Jenkins任务中修改allure-results存储路径失败求助

解决Jenkins多任务Allure Results路径冲突问题

核心思路

allure-results的生成路径由测试执行框架控制,Jenkins Allure插件仅负责读取该目录下的结果并生成报告。要实现每个任务独立存储结果,必须在测试执行步骤中指定专属的results路径,再配合Jenkins插件配置对应路径。

具体解决方案

1. 测试执行阶段指定独有的allure-results路径

根据你使用的测试框架,修改测试命令或配置文件:

Pytest场景

在pytest命令中通过--alluredir参数指定任务专属路径,用Jenkins内置变量${JOB_NAME}自动区分任务:

pytest tests/ --alluredir ./allure-results-${JOB_NAME}

Java项目(TestNG/JUnit)

  • Maven:修改pom.xml中allure-maven-plugin配置,注入Jenkins环境变量:
<plugin>
    <groupId>io.qameta.allure</groupId>
    <artifactId>allure-maven-plugin</artifactId>
    <version>2.12.0</version>
    <configuration>
        <resultsDirectory>${project.build.directory}/allure-results-${JOB_NAME}</resultsDirectory>
        <reportDirectory>${project.build.directory}/allure-report-${JOB_NAME}</reportDirectory>
    </configuration>
</plugin>
  • Gradle:修改build.gradle中的Allure配置:
allure {
    version = '2.21.0'
    resultsDir = file("build/allure-results-${System.getenv('JOB_NAME')}")
    reportDir = file("build/allure-report-${System.getenv('JOB_NAME')}")
}

2. Jenkins Allure插件配置对应路径

在Jenkins任务的构建后操作中,找到Allure Report配置,将Allure results路径设置为你指定的专属路径,比如:

./allure-results-${JOB_NAME}

确保插件能正确读取当前任务的结果目录。

3. 可选:清理旧结果

在任务构建步骤开头添加清理命令,避免旧文件干扰:

rm -rf ./allure-results-${JOB_NAME} || true

问题根源说明

你之前的配置仅修改了Jenkins插件的Report path,但没有调整测试框架生成allure-results的源头路径,导致所有任务仍往默认的allure-results目录写入结果,最终引发冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:22:40