代码覆盖(Code coverage)是软件测试中的一种度量,描述程式中源代码被测试的比例和程度,所得比例称为代码覆盖率。java
Visual Studio 2017的企业版能够直接查看测试的代码覆盖率, 而因为我只能用得起Visual Studio Community和VS Code因此不得不寻找其它的免费办法来查看测试覆盖率.git
我找到了 coverlet: https://github.com/tonerdo/coverlet, 它是一个针对.NET Core的跨平台代码覆盖率的库github
coverlet目前支持两种方式操做:json
安装后, 就能够使用coverlet命令了, 查看帮助: coverlet --help, 这种我就不介绍了, 能够查看官方文档.架构
很简单, 在测试项目下执行测试命令, 并加上后边的启用参数便可: dotnet test /p:CollectCoverage=true .app
默认报告的格式是json.工具
coverlet还支持其它几种格式, 能够经过CoverletOutputFormat参数指定.测试
目前支持这几种格式:ui
例如想要改用opencover格式: 那么: dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover 这样写便可.spa
其生成的报告文件默认名是:
coverlet还有一些其它参数, 使用都很简单, 请查看官方文档吧: https://github.com/tonerdo/coverlet#msbuild
coverlet能够生成报告, 可是都是那些json, xml等数据格式, 经过命令行窗口也只能看见总览的数据. 想要查看用户能看明白的详细报告须要使用一些工具, 例如ReportGenerator或SonarCloud.
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便可:
里面还能够点击进行一些操做:
它是一个云服务, 可是须要安装java环境, 我嫌麻烦就不介绍了. 可自行到官网了解: https://sonarcloud.io/
这个简介写完了...............