如何在VS Code中获取.NET代码的NUnit测试覆盖率分析?
在VS Code中查看.NET NUnit测试代码覆盖率的方法
一、生成代码覆盖率数据
首先需要借助coverlet工具生成标准格式的覆盖率数据,步骤如下:
- 给你的NUnit测试项目安装
coverlet.collectorNuGet包,执行命令:dotnet add package coverlet.collector - 运行测试并生成覆盖率文件:
执行完成后,项目根目录的dotnet test --collect:"XPlat Code Coverage"TestResults文件夹下会生成包含覆盖率数据的coverage.cobertura.xml文件。
二、VS Code可视化工具推荐
1. Coverage Gutters
这是最常用的覆盖率可视化扩展,支持直接解析cobertura格式的覆盖率文件:
- 安装扩展后,打开项目,点击VS Code状态栏的「Watch」按钮,或者通过命令面板(Ctrl+Shift+P)执行
Coverage Gutters: Watch命令。 - 扩展会自动识别覆盖率文件,在编辑器左侧 gutter 用不同颜色标记代码:绿色表示已覆盖,红色表示未覆盖,黄色表示部分覆盖,同时在状态栏显示整体覆盖率百分比。
2. .NET Test Explorer
如果习惯用这个扩展管理测试,也可以配合coverlet实现基础覆盖率查看:
- 确保已安装扩展后,在测试运行配置中启用覆盖率收集,运行测试后可以在扩展面板看到每个测试类/方法的覆盖率统计,不过可视化细节不如Coverage Gutters丰富。
三、文本形式覆盖率分析
如果需要纯文本的覆盖率汇总,可以使用reportgenerator工具:
- 先全局安装工具:
dotnet tool install -g dotnet-reportgenerator-globaltool - 生成文本汇总报告:
执行后,reportgenerator -reports:"TestResults/**/coverage.cobertura.xml" -targetdir:"coverage-report" -reporttypes:TextSummarycoverage-report文件夹下的Summary.txt会包含详细的覆盖率统计,包括项目、类、方法的覆盖占比。
内容的提问来源于stack exchange,提问作者Yoro
相关产品推荐
相关产品推荐

