使用 coverlet 查看.NET Core应用的测试覆盖率

代码覆盖(Code coverage)是软件测试中的一种度量,描述程式中源代码被测试的比例和程度,所得比例称为代码覆盖率。java

Visual Studio 2017的企业版能够直接查看测试的代码覆盖率, 而因为我只能用得起Visual Studio Community和VS Code因此不得不寻找其它的免费办法来查看测试覆盖率.git

coverlet

我找到了 coverlethttps://github.com/tonerdo/coverlet, 它是一个针对.NET Core的跨平台代码覆盖率的库github

coverlet目前支持两种方式操做:json

  1. 做为全局工具使用命令:  dotnet tool install --global coverlet.console

     安装后, 就能够使用coverlet命令了, 查看帮助: coverlet --help, 这种我就不介绍了, 能够查看官方文档.架构

  2. 在测试项目经过Nuget或dotnet cli添加该库: dotnet add package coverlet.msbuild. 这种方式下, 当它被启用后, 它会集成到dotnet test 这个命令架构里, 在测试运行后自动生成覆盖率报告.

启用coverlet

很简单, 在测试项目下执行测试命令, 并加上后边的启用参数便可: dotnet test /p:CollectCoverage=true .app

默认报告的格式是json.工具

报告格式

coverlet还支持其它几种格式, 能够经过CoverletOutputFormat参数指定.测试

目前支持这几种格式:ui

  • json (default)
  • lcov
  • opencover
  • cobertura

例如想要改用opencover格式: 那么: dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover 这样写便可.spa

其生成的报告文件默认名是:

其它参数

coverlet还有一些其它参数, 使用都很简单, 请查看官方文档吧: https://github.com/tonerdo/coverlet#msbuild

 

查看报告

coverlet能够生成报告, 可是都是那些json, xml等数据格式, 经过命令行窗口也只能看见总览的数据. 想要查看用户能看明白的详细报告须要使用一些工具, 例如ReportGenerator或SonarCloud.

ReportGenerator

ReportGenerator在本地就能够使用, 它支持opencover格式等, 在测试项目安装: dotnet add package ReportGenerator --version 4.0.0-alpha12

安装后按照说明操做便可: 

在我电脑上我使用的命令以下: dotnet C:\Users\solen\.nuget\packages\reportgenerator\4.0.0-alpha12\tools\netcoreapp2.0\ReportGenerator.dll -reports:.\coverage.opencover.xml -targetdir:F:\Reports 

 

而后到输出目录, 打开index.htm便可:

里面还能够点击进行一些操做:

 

SonarCloud

它是一个云服务, 可是须要安装java环境, 我嫌麻烦就不介绍了. 可自行到官网了解: https://sonarcloud.io/

 

这个简介写完了...............

相关文章
相关标签/搜索