无法从两个独立的 Jenkins maven 构建生成统一的 Allure 报告
Cannot generate unified Allure report from two separate Jenkins maven builds
我想通过合并两个独立的 Jenkins maven 项目的结果来生成一个统一的报告(我读过 Allure 确实支持该功能 - 合并结果不同的 allure-results 文件夹),但它不起作用正如我将在下面解释的那样正确。
我的 objective 是从所有项目的所有测试结果中获得可见性。目前只能看到某个项目的测试结果
这是上下文:
我有两个 Maven 项目(testNG
)运行 并通过 JENKINS 上的 allure 报告结果。正如您在下面看到的,这两个构建的 allure 结果按预期工作 - 由 Allure Jenkins 插件版本 2.26.0
自动生成
Allure Jenkins plugin working fine for separate maven jobs
现在我还安装了 Allure 2.6.0 并将其添加到系统 PATH 并正确配置 ALLURE_HOME 环境变量。
所以当我在这里 运行 这个命令时:
诱惑服务 "C:\Users\tester\workspace\scripts-qa\STF\allure-results" --host "127.0.0.1" --port "8081"
它完美地报告了我的 IntelliJ 的 Allure-results 中的结果,如下所示。
Allure serve results from my local worspace
现在,当我 运行 与上述类似的命令通过合并我在 Jenkins 中获得的两个报告来生成统一报告时 - 只填充了执行趋势 - 但测试总数及其详细信息是不像你在下面看到的那样。
这是我为生成统一报告而执行的命令:
诱惑发球 "C:\Users\tester\.jenkins\workspace\Regression2\allure-report" "C:\Users\tester\.jenkins\workspace\Regression1\allure-report" --host "127.0.0.1" --port "8081"
Allure problem when trying to merge reports from two separate jenkins projects
你能帮我弄清楚这里出了什么问题吗?是否有可能 allure binary 无法提供由 allure Jenkins 插件生成的结果?如果是,解决该问题的工作是什么?
谢谢!!
让.
我看到您正在尝试从已生成的报告中生成累积报告,这是不正确的 - Allure 需要原始 allure-results
才能生成报告
作为解决方法,您需要
- 为每个测试执行作业存档
allure-results
并将其作为工件附加到构建中
- 复制
allure-results
个工件
- 解压缩
- 根据工件
allure-results
构建报告
以下是管道作业的代码片段
附加 allure-results
作为工件:
zip archive: true, dir: "target/allure-results", glob: '', zipFile: "allure-results.zip"
将工件复制到另一个作业:
copyArtifacts filter: 'allure-results.zip', optional: true, projectName: "Regression1", selector: lastCompleted(), target: "Regression1"
unzip dir: "Regression1", glob: '', zipFile: "Regression1/allure-results.zip"
...
构建报告
allure serve Regression1 Regression2
您还可以 select 像这样汇总报告:
allure includeProperties: false, jdk: '', results: [
[path: '../name-of-job-1/target/allure-results'],
[path: '../name-of-job-2/target/allure-results'],
[path: '../name-of-job-3/target/allure-results']]
}
我想通过合并两个独立的 Jenkins maven 项目的结果来生成一个统一的报告(我读过 Allure 确实支持该功能 - 合并结果不同的 allure-results 文件夹),但它不起作用正如我将在下面解释的那样正确。
我的 objective 是从所有项目的所有测试结果中获得可见性。目前只能看到某个项目的测试结果
这是上下文:
我有两个 Maven 项目(testNG
)运行 并通过 JENKINS 上的 allure 报告结果。正如您在下面看到的,这两个构建的 allure 结果按预期工作 - 由 Allure Jenkins 插件版本 2.26.0
Allure Jenkins plugin working fine for separate maven jobs
现在我还安装了 Allure 2.6.0 并将其添加到系统 PATH 并正确配置 ALLURE_HOME 环境变量。
所以当我在这里 运行 这个命令时:
诱惑服务 "C:\Users\tester\workspace\scripts-qa\STF\allure-results" --host "127.0.0.1" --port "8081"
它完美地报告了我的 IntelliJ 的 Allure-results 中的结果,如下所示。
Allure serve results from my local worspace
现在,当我 运行 与上述类似的命令通过合并我在 Jenkins 中获得的两个报告来生成统一报告时 - 只填充了执行趋势 - 但测试总数及其详细信息是不像你在下面看到的那样。
这是我为生成统一报告而执行的命令:
诱惑发球 "C:\Users\tester\.jenkins\workspace\Regression2\allure-report" "C:\Users\tester\.jenkins\workspace\Regression1\allure-report" --host "127.0.0.1" --port "8081"
Allure problem when trying to merge reports from two separate jenkins projects
你能帮我弄清楚这里出了什么问题吗?是否有可能 allure binary 无法提供由 allure Jenkins 插件生成的结果?如果是,解决该问题的工作是什么?
谢谢!! 让.
我看到您正在尝试从已生成的报告中生成累积报告,这是不正确的 - Allure 需要原始 allure-results
才能生成报告
作为解决方法,您需要
- 为每个测试执行作业存档
allure-results
并将其作为工件附加到构建中 - 复制
allure-results
个工件 - 解压缩
- 根据工件
allure-results
构建报告
以下是管道作业的代码片段
附加 allure-results
作为工件:
zip archive: true, dir: "target/allure-results", glob: '', zipFile: "allure-results.zip"
将工件复制到另一个作业:
copyArtifacts filter: 'allure-results.zip', optional: true, projectName: "Regression1", selector: lastCompleted(), target: "Regression1"
unzip dir: "Regression1", glob: '', zipFile: "Regression1/allure-results.zip"
...
构建报告
allure serve Regression1 Regression2
您还可以 select 像这样汇总报告:
allure includeProperties: false, jdk: '', results: [
[path: '../name-of-job-1/target/allure-results'],
[path: '../name-of-job-2/target/allure-results'],
[path: '../name-of-job-3/target/allure-results']]
}