这两天在给项目补单元测试,dalao们要求要看一下测试覆盖率html
翻了一波官方test命令覆盖率却是有支持了,然而某个更新日志里面写着git
【“Support for Linux and Mac will be considered separately in a subsequent effort.”】github
吐血ing。。。json
8102年都要过去了,微软同窗你是不有点过度啊。ide
而后又翻了一堆资料以后发现,GitHub有dalao本身搞了个coverlet来支持测试覆盖率。工具
开源大法拯救世界啊!!!单元测试
star一个再说。测试
首先安装一下coverlet.ui
dotnet tool install --global coverlet.console
或者和我同样懒的话,直接在项目里面引用 "coverlet.msbuild" 这个包也行.spa
<PackageReference Include="coverlet.msbuild" Version="2.5.0" />
引用以后,执行dotnet test 的时候加多三个参数
dotnet test /p:CollectCoverage=true /p:CoverletOutput='./results/' /p:CoverletOutputFormat=opencover
其余参数本身看一下文档说明就好.
执行以后大概会看到这些信息.
PS:可怜的个位数覆盖率....
这个时候Test项目里面的results 文件夹里面就有一个coverage.opencover.xml 文件了.
打开这个文件大概长这个样.
大几率这不是人看的东西.
而后另外一个工具又出来了.
https://github.com/danielpalme/ReportGenerator
这个工具能够讲上面这些不是人看的XML转换成HTML输出.
美滋滋啊美滋滋啊.
他们竟然还有一个配置指导的页面ReportGenerator/usage
真良心!!!
我这边简单起见,直接安装 dotnet tool 全局工具算了.
dotnet tool install --global dotnet-reportgenerator-globaltool
安装好了以后,直接在命令行里面使用 reportgenerator 生成对应的测试报告便可.我这边的命令大概是:
reportgenerator '-reports:UnitTests/results/*.xml' '-targetdir:UnitTests/results'
打开UnitTests/results 下面的index.htm就能看到对应的测试报告了.
全文完.
明年见!