Jenkins矩阵流水线中Allure报告被覆盖的修复方法咨询
解决Jenkins矩阵项目中Allure报告被覆盖的问题
问题根因很明确:Jenkins矩阵项目的所有实例共享同一个工作空间,你现在把两个城市的Allure测试结果都输出到target/allure-results目录,后运行的CITY_02自然会覆盖CITY_01的结果文件,最终就只剩后者的报告了。
下面给两种修复方案,按需选择:
方案1:每个城市生成独立报告
给每个矩阵实例的测试结果分配独立目录,用矩阵变量CITY_NAME做区分,同时同步修改测试执行和报告生成的路径:
stages { stage("Build Matrix Project") { matrix { axes { axis { name "CITY_NAME" values "CITY_01", "CITY_02" } } stages { stage("Build and Run Tests") { steps { // 重点:修改测试命令,把结果输出到带城市变量的目录 // 比如Maven项目可以加参数:mvn test -Dallure.results.directory=target/allure-results-${CITY_NAME} .... } } stage("Generate Reports") { steps { allure commandline: "Allure 2.18.1", includeProperties: false, jdk: "", results: [[path: "target/allure-results-${CITY_NAME}"]], reportBuildPolicy: "ALWAYS" } } } } } }
方案2:生成包含所有城市结果的合并报告
如果想要一份整合两个城市测试结果的报告,可以在所有矩阵实例执行完后,统一收集各城市的结果目录生成合并报告:
stages { stage("Build Matrix Project") { matrix { axes { axis { name "CITY_NAME" values "CITY_01", "CITY_02" } } stages { stage("Build and Run Tests") { steps { // 同样要把测试结果输出到独立目录 // 示例:mvn test -Dallure.results.directory=target/allure-results-${CITY_NAME} .... } } } } stage("Generate Combined Allure Report") { steps { allure commandline: "Allure 2.18.1", includeProperties: false, jdk: "", results: [ [path: "target/allure-results-CITY_01"], [path: "target/allure-results-CITY_02"] ], reportBuildPolicy: "ALWAYS" } } } }
内容的提问来源于stack exchange,提问作者Vel Ganesh
相关产品推荐
相关产品推荐

