Azure DevOps中能否发布不同测试套件的结果并避免覆盖,同时在Tests and Coverage页面展示全部结果?
解决Azure DevOps测试套件结果覆盖问题,实现同一区域展示全部结果
没问题,我来帮你搞定这个测试结果覆盖的事儿!在Azure DevOps里,确实默认情况下如果处理不当,后运行的测试套件会覆盖前一个的结果,但我们有几种方法可以让两个套件的结果都显示在Tests and Coverage页面上:
方法1:给每个测试任务指定独立的结果文件
不管你用的是Visual Studio Test任务还是其他测试运行任务,核心是让每个测试套件生成不同的测试结果文件,避免路径冲突覆盖。
- 针对第一个测试套件的任务:在
Test results files字段里设置自定义路径,比如**/FirstSuiteResults.trx - 针对第二个测试套件的任务:设置另一个路径,比如
**/SecondSuiteResults.trx
这样两个任务生成的结果文件不会互相覆盖,发布后就能在Tests and Coverage页面看到两个套件的全部结果了。
方法2:合并测试结果后统一发布
如果希望最终展示成一个合并的结果集,可以先分别生成两个测试结果文件,再合并成一个后发布:
- 用命令行分别运行两个测试套件,生成独立的trx文件:
vstest.console.exe ./FirstTestSuite/bin/Debug/FirstTestSuite.dll /logger:trx;LogFileName=FirstSuite.trx vstest.console.exe ./SecondTestSuite/bin/Debug/SecondTestSuite.dll /logger:trx;LogFileName=SecondSuite.trx
- 使用
vstest.console.exe的/merge参数合并两个结果文件:
vstest.console.exe /merge FirstSuite.trx SecondSuite.trx /logger:trx;LogFileName=MergedResults.trx
- 在发布管道里添加Publish Test Results任务,指向这个
MergedResults.trx文件,就能一次性展示所有测试结果。
方法3:添加多个Publish Test Results任务
如果你的测试任务已经分别生成了结果文件,只是没正确上传,可以在发布管道里为每个测试套件添加一个独立的Publish Test Results任务:
- 第一个任务:设置
Test results files为第一个套件的结果文件路径 - 第二个任务:设置为第二个套件的结果文件路径
每个任务都会独立上传自己的测试结果,Azure DevOps会自动在Tests and Coverage页面汇总展示所有上传的结果。
小提示
- 确保每个测试任务的「Publish test results」选项是开启的(如果用的是Visual Studio Test任务,这个选项在任务设置里可以找到)
- 检查结果文件的路径是否正确,避免因为路径错误导致结果没被上传
内容的提问来源于stack exchange,提问作者Nastasia
相关产品推荐
相关产品推荐

