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

如何为.NET Core XUnit项目在VSTS构建中添加代码覆盖率

嘿,我来一步步教你搞定这个事儿——给基于ASP.NET Core和XUnit的VSTS构建加上代码覆盖率指标,其实流程很清晰,跟着走就行:

1. 给测试项目安装代码覆盖率工具

我们用Coverlet这个轻量工具,它和XUnit完美兼容,还能直接集成到MSBuild里:

  • 打开你的XUnit测试项目,通过NuGet包管理器安装Coverlet.MSBuild包(选最新稳定版就行);或者直接在项目的.csproj文件里添加下面的引用:
    <PackageReference Include="Coverlet.MSBuild" Version="6.0.0" PrivateAssets="all" />
    
    (版本号可以换成你安装的最新版)

2. 配置VSTS构建里的测试任务

接下来要在VSTS构建管道里调整测试任务的参数,让它在运行测试时收集覆盖率:

  • 打开你的VSTS构建管道,找到现有的**.NET Core**测试任务(如果没有就添加一个)
  • 把任务的命令设置为test
  • 在参数输入框里添加这些配置:
    --configuration $(BuildConfiguration) /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:CoverletOutput=$(Build.SourcesDirectory)/TestResults/Coverage/
    
    简单解释下这些参数:
    • CollectCoverage=true:开启覆盖率收集功能
    • CoverletOutputFormat=cobertura:生成VSTS能识别的Cobertura格式报告
    • CoverletOutput:指定报告的输出路径,方便后续任务读取

3. 添加发布覆盖率报告的任务

生成报告后,得让VSTS把数据展示出来,所以要加一个Publish Code Coverage Results任务:

  • 在测试任务的后面添加这个任务
  • 配置项里:
    • Code coverage tool选择Cobertura
    • Summary file填写刚才指定的报告路径:$(Build.SourcesDirectory)/TestResults/Coverage/coverage.cobertura.xml
    • 如果你想设置覆盖率门槛(比如低于80%就构建失败),可以勾选Fail build if coverage is below threshold,然后在下面设置具体的阈值

4. 验证效果

保存管道配置后,手动触发一次构建,等构建完成:

  • 进入构建结果页面,找到Code Coverage标签页,就能看到详细的覆盖率数据了——包括整体覆盖率、各个项目、类甚至方法的覆盖情况,一目了然

小提示

  • 如果你的解决方案有多个测试项目,每个都需要安装Coverlet.MSBuild包
  • 确保测试任务的工作目录是解决方案根目录,不然可能会出现报告找不到的问题
  • 要是遇到路径相关的问题,可以在测试任务后加一个Publish Build Artifacts任务,把TestResults文件夹发布成构建构件,方便排查问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:11:08