翼度科技»论坛 编程开发 .net 查看内容

.NET 使用 Coverlet 统计单元测试覆盖率

10

主题

10

帖子

30

积分

新手上路

Rank: 1

积分
30
代码覆盖率(Code coverage)是指在软件测试中测试用例执行时覆盖的代码量与总代码量的比例。代码覆盖率是软件测试中一个重要的指标,它对于保障软件质量、提高软件可靠性和可维护性具有许多好处:发现代码缺陷、提高代码的可维护性、确保代码的正确性和优化测试用例质量等。
我们常用的 IDE,Visual Studio、Rider 等都直接查看覆盖率,但是如果我们想将覆盖率的管控,配置到自动化的质量管控流程里,如 Github Actions、Azure Devops、Github CI 和 Sonarqube 等,需要我们额外做一些工作。这里我们可以借助开源项目 Coverlet(https://github.com/tonerdo/coverlet)
1.使用 Coverlet

默认情况下执行 dotnet test 的结果:

1.1 方式一

安装 Nuget 包
  1. dotnet add package coverlet.msbuild
复制代码
然后执行测试命令
  1. dotnet test /p:CollectCoverage=true
复制代码

可以看到控制台会输出覆盖率结果,并且也会输出到 json 文件。
1.2 方式2

安装 .NET Global Tool
  1. dotnet tool install --global coverlet.console
复制代码
然后执行 coverlet 命令
  1. coverlet /path/to/test-assembly.dll --target "dotnet" --targetargs "test /path/to/test-project --no-build"
复制代码
还是推荐第一种方式比较省事。
2.更改输出格式

Coverlet 的默认输出格式是 Json,如果要接入 codecov.io 等平台的话是需要 opencover 格式的,通过 CoverletOutputFormat参数指定。
示例:
  1. dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover
复制代码
3.参考资料


来源:https://www.cnblogs.com/stulzq/archive/2023/03/07/17188001.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具