首页 > 其他分享 >.NET 使用 Coverlet 统计单元测试覆盖率

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

时间:2023-03-07 14:34:39浏览次数:48  
标签:覆盖率 coverlet 代码 单元测试 test dotnet NET Coverlet

代码覆盖率(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

1.1 方式一

安装 Nuget 包

dotnet add package coverlet.msbuild

然后执行测试命令

dotnet test /p:CollectCoverage=true

image-20230307140607321

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

1.2 方式2

安装 .NET Global Tool

dotnet tool install --global coverlet.console

然后执行 coverlet 命令

coverlet /path/to/test-assembly.dll --target "dotnet" --targetargs "test /path/to/test-project --no-build"

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

2.更改输出格式

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

示例:

dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover

3.参考资料

标签:覆盖率,coverlet,代码,单元测试,test,dotnet,NET,Coverlet
From: https://www.cnblogs.com/stulzq/p/17188001.html

相关文章

  • .NET(C#) 中的程序集
    .NET(C#)中的程序集 程序集构成了.NET应用程序的部署、版本控制、重用、激活范围和安全权限的基本单元。程序集是为协同工作而生成的类型和资源的集合,这些......
  • .NET 6 运行在Win7 SP1上出错
    因此Win7需要安装更新。UpdatePack7R2(Win7补丁累积更新包),UpdatePack7R2是Win7系统上的一款累积更新安装包工具,由老毛子团队制作,将Win7系统上的一些更新包程序整合到一起......
  • 搞定Go单元测试(二)—— mock框架(gomock)
    通过阅读上一篇文章,相信你对怎么做单元测试已经有了初步的概念,可以着手对现有的项目进行改造并开展测试了。学会了走路,我们尝试跑起来,本篇主要介绍gomock测试框架,让我们的......
  • 搞定Go单元测试(一)——基础原理
    单元测试是代码质量的保证。本系列文章将一步步由浅入深展示如何在Go中做单元测试。Go对单元测试的支持相当友好,标准包中就支持单元测试,在开始本系阅读之前,需要对标准测试......
  • 搞定Go单元测试(四)—— 依赖注入框架(wire)
    在第一篇文章中提到过,为了让代码可测,需要用依赖注入的方式来构建我们的对象,而通常我们会在main.go做依赖注入,这就导致main.go会越来越臃肿。为了让单元测试得以顺利进行,mai......
  • 搞定Go单元测试(三)—— 断言(testify
    在上一篇,介绍了表格驱动测试方法和gomock测试框架,大大提升了测试效率与质量。本篇将介绍在测试中引入断言(assertion),进一步提升测试效率与质量。为什么需要断言库我们先来......
  • .NET虚拟文件系统
    TinyVFS TinyVFS是一个虚拟文件系统,受ABPvNext框架的启发。它可以将js、css、image、cshtml等文件嵌入到程序集中,并在运行时可以将它们像物理文件一样去使用。特点在......
  • # ASP.NET Core使用静态文件、目录游览与MIME类型管理
    ASP.NETCore使用静态文件、目录游览与MIME类型管理https://blog.csdn.net/sD7O95O/article/details/78994496前言今天我们来了解了解ASP.NETCore中的静态文件的处理方......
  • Neural Network
    NeuralNetworkConsistofmanylayerswithcoefficients.Divideonepartintoseveralsubpartsandrepeatthisstepforpropertimes.TrainMakearandomgues......
  • 【译】.NET 7 中的性能改进(十二)
    原文|StephenToub翻译|郑子铭NewAPIs在.NET7中,Regex得到了几个新的方法,所有这些方法都能提高性能。新的API的简单性可能也误导了为实现它们所需的工作量,特别是由......