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
相关产品推荐
相关产品推荐

