前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.NET 使用 Coverlet 统计单元测试覆盖率

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

作者头像
晓晨
发布2023-03-08 11:01:15
5350
发布2023-03-08 11:01:15
举报
文章被收录于专栏:晓晨的专栏晓晨的专栏

代码覆盖率(Code coverage)是指在软件测试中测试用例执行时覆盖的代码量与总代码量的比例。代码覆盖率是软件测试中一个重要的指标,它对于保障软件质量、提高软件可靠性和可维护性具有许多好处:发现代码缺陷、提高代码的可维护性、确保代码的正确性和优化测试用例质量等。

我们常用的 IDE,Visual Studio、Rider 等都直接查看覆盖率,但是如果我们想将覆盖率的管控,配置到自动化的质量管控流程里,如 Github Actions、Azure Devops、Github CI 和 Sonarqube 等,需要我们额外做一些工作。这里我们可以借助开源项目 Coverlet(https://github.com/tonerdo/coverlet)

1.使用 Coverlet

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

image-20230307140341997
image-20230307140341997

1.1 方式一

安装 Nuget 包

代码语言:javascript
复制
dotnet add package coverlet.msbuild

然后执行测试命令

代码语言:javascript
复制
dotnet test /p:CollectCoverage=true
image-20230307140607321
image-20230307140607321

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

1.2 方式2

安装 .NET Global Tool

代码语言:javascript
复制
dotnet tool install --global coverlet.console

然后执行 coverlet 命令

代码语言:javascript
复制
coverlet /path/to/test-assembly.dll --target "dotnet" --targetargs "test /path/to/test-project --no-build"

还是推荐第一种方式比较省事。

2.更改输出格式

Coverlet 的默认输出格式是 Json,如果要接入 codecov.io 等平台的话是需要 opencover 格式的,通过 CoverletOutputFormat参数指定。

示例:

代码语言:javascript
复制
dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover

3.参考资料

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.使用 Coverlet
    • 1.1 方式一
      • 1.2 方式2
      • 2.更改输出格式
      • 3.参考资料
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档