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

如何在Azure Pipeline YAML中配置Coverlet与Cobertura包含NUnit测试项目覆盖率

Azure Pipeline代码覆盖率未包含测试项目的解决办法

默认Coverlet(XPlat Code Coverage依赖的工具)会自动排除测试项目代码,这是它的默认行为。你当前配置里的/p:Include="[Warsy.Fulto.Test]*"没生效,是因为使用--collect:"XPlat Code Coverage"时,需要明确覆盖排除规则并指定格式参数。

修正后的YAML配置

# 运行测试并收集包含测试项目的代码覆盖率
- task: DotNetCoreCLI@2
  displayName: '运行测试并收集覆盖率'
  inputs:
    command: 'test'
    projects: '**/Warsy.Fulto.Test.csproj'
    arguments: |
      --configuration $(buildConfiguration)
      --collect:"XPlat Code Coverage"
      /p:Include="[Warsy.Fulto.Test]*"
      /p:Exclude=""
      /p:CoverletOutputFormat=cobertura
      --verbosity detailed

# 发布代码覆盖率结果
- task: PublishCodeCoverageResults@2
  displayName: '发布覆盖率报告'
  inputs:
    codeCoverageTool: 'Cobertura'
    summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'

关键调整点

  • /p:Exclude="":清空默认排除规则,避免测试项目被自动过滤
  • /p:CoverletOutputFormat=cobertura:强制生成Cobertura格式报告,保证和后续发布任务兼容
  • 确认Include参数的程序集名称准确:[Warsy.Fulto.Test]*必须和测试项目的程序集全名完全匹配(注意大小写、命名空间一致性)

验证步骤

  1. 查看测试任务的详细日志,确认Coverlet已接收Include和Exclude参数
  2. 检查生成的coverage.cobertura.xml文件,搜索测试项目的命名空间,确认是否存在相关覆盖率数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:15:03