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

Azure DevOps测试Pipeline报错:未匹配到coverage.cobertura.xml文件

Azure DevOps Pipeline 代码覆盖率文件找不到问题解决建议

错误提示The report file pattern '/home/vsts/work/1/s/**/coverage.cobertura.xml' found no matching files的核心原因是:使用XPlat Code Coverage收集覆盖率时,生成的coverage.cobertura.xml文件默认存储在测试项目的TestResults目录下的随机GUID子文件夹中,原配置的路径通配符无法匹配到这个位置。

以下是具体修复方案:

1. 修正ReportGenerator任务的报告路径

将ReportGenerator的reports参数修改为:

reports: '$(System.DefaultWorkingDirectory)/**/TestResults/**/coverage.cobertura.xml'

多一层TestResults/**/匹配,就能覆盖到所有测试项目下随机目录里的覆盖率文件。

2. 优化PublishCodeCoverageResults任务的路径

原配置使用通配符可能匹配到非目标文件,直接指定ReportGenerator生成的输出文件路径:

summaryFileLocation: '$(Build.DefaultWorkingDirectory)/CodeCoverage/Cobertura.xml'

3. 可选:统一测试结果目录(增强可控性)

在dotnet test步骤中手动指定结果目录,避免随机子目录带来的路径不确定性:

- task: DotNetCoreCLI@2
  displayName: 'dotnet test'
  inputs:
    command: test
    arguments: '--collect:"XPlat Code Coverage" --results-directory $(System.DefaultWorkingDirectory)/TestResults'

完整修正后的YAML配置

pool:
  name: Azure Pipelines
steps:
- task: UseDotNet@2
  displayName: 'Use .NET Core sdk 8.x'
  inputs:
    version: 8.x

- task: DotNetCoreCLI@2
  displayName: 'dotnet restore'
  inputs:
    command: restore

- task: DotNetCoreCLI@2
  displayName: 'dotnet build'

- task: DotNetCoreCLI@2
  displayName: 'dotnet test'
  inputs:
    command: test
    arguments: '--collect:"XPlat Code Coverage" --results-directory $(System.DefaultWorkingDirectory)/TestResults' # 新增统一结果目录

- task: DotNetCoreCLI@2
  displayName: 'Install ReportGenerator'
  inputs:
    command: custom
    custom: tool
    arguments: 'install --global dotnet-reportgenerator-globaltool'

- task: Palmmedia.reportgenerator.reportgenerator-build-release-task.reportgenerator@5
  displayName: ReportGenerator
  inputs:
    reports: '$(System.DefaultWorkingDirectory)/**/TestResults/**/coverage.cobertura.xml' # 修正路径匹配
    targetdir: '$(Build.DefaultWorkingDirectory)/CodeCoverage'

- task: PublishCodeCoverageResults@1
  displayName: 'Publish code coverage results'
  inputs:
    codeCoverageTool: Cobertura
    summaryFileLocation: '$(Build.DefaultWorkingDirectory)/CodeCoverage/Cobertura.xml' # 直接指定输出文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 13:33:17