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

如何通过Azure DevOps Publish Test Results任务获取合并代码覆盖率?

解决多测试项目下Azure DevOps代码覆盖率合并发布问题

首先明确:Publish Test Results任务本身不会自动生成代码覆盖率数据,它仅负责发布已生成的结果。你需要先确保每个测试项目都生成了覆盖率文件,再通过正确配置让任务识别并合并这些数据,具体步骤如下:

1. 让测试任务生成覆盖率文件

在.NET Core Test任务中,必须显式配置生成代码覆盖率报告,同时将所有测试项目的结果输出到统一目录(避免互相覆盖)。示例YAML配置:

- task: DotNetCoreCLI@2
  displayName: '运行单元测试并生成覆盖率'
  inputs:
    command: 'test'
    projects: '**/*Tests.csproj'
    arguments: '--configuration $(BuildConfiguration) --collect:"XPlat Code Coverage" --results-directory $(Agent.TempDirectory)/CoverageResults'

其中--collect:"XPlat Code Coverage"会生成基于OpenCover的覆盖率数据,--results-directory指定统一输出目录,每个测试项目会生成独立子目录存放自身结果。

2. 合并多项目覆盖率数据(可选但推荐)

如果需要将所有项目的覆盖率合并为单个统一报告,可使用reportgenerator工具完成合并:

- task: DotNetCoreCLI@2
  displayName: '安装ReportGenerator工具'
  inputs:
    command: 'custom'
    custom: 'tool'
    arguments: 'install --global dotnet-reportgenerator-globaltool'

- task: CmdLine@2
  displayName: '合并覆盖率报告'
  inputs:
    script: |
      reportgenerator -reports:$(Agent.TempDirectory)/CoverageResults/**/coverage.cobertura.xml -targetdir:$(Build.ArtifactStagingDirectory)/Coverage -reporttypes:Cobertura

这一步会将所有测试项目的coverage.cobertura.xml文件合并为一个统一报告,存放到构建工件目录。

3. 配置Publish Test Results任务识别覆盖率

在Publish Test Results任务中,除了开启mergeTestResults,还必须指定覆盖率工具类型和文件路径,让任务能找到并发布覆盖率数据。示例YAML配置:

- task: PublishTestResults@2
  displayName: '发布测试结果与覆盖率'
  inputs:
    testResultsFormat: 'XUnit'
    testResultsFiles: '**/*.xml'
    searchFolder: '$(Agent.TempDirectory)/CoverageResults'
    mergeTestResults: true
    codeCoverageTool: 'Cobertura'
    codeCoverageFileName: '$(Build.ArtifactStagingDirectory)/Coverage/Cobertura.xml'

这里的核心配置项:

  • codeCoverageTool:指定覆盖率文件的格式(如Cobertura)
  • codeCoverageFileName:指向合并后的覆盖率文件(若未合并,可指向单个项目的覆盖率文件路径)

常见误区

  • 不要指望Publish Test Results自动生成覆盖率:它仅负责发布已存在的数据,必须先由测试任务生成覆盖率文件
  • 多项目的覆盖率文件不能重名:要么用独立子目录存放,要么通过工具合并为单个文件
  • 确保codeCoverageFileName路径正确:若路径不存在或文件格式不匹配,任务会忽略覆盖率数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 18:45:42