zoukankan      html  css  js  c++  java
  • .NET Core单元测试覆盖率统计coverlet配置和使用

    https://segmentfault.com/a/1190000017569492  

    需要使用: 

    使用 Moq 测试.NET Core 应用          https://www.cnblogs.com/cgzl/p/9308723.html

    使用 coverlet 查看.NET Core应用的测试覆盖率  https://www.cnblogs.com/cgzl/p/9326127.html

    这两天在给项目补单元测试,dalao们要求要看一下测试覆盖率

    翻了一波官方test命令覆盖率倒是有支持了,然而某个更新日志里面写着

    【“Support for Linux and Mac will be considered separately in a subsequent effort.”】

    吐血ing。。。

    8102年都要过去了,微软同学你是不有点过分啊。

    然后又翻了一堆资料之后发现,GitHub有dalao自己搞了个coverlet来支持测试覆盖率。

    开源大法拯救世界啊!!!

    star一个再说。

    coverlet配置和使用

    首先安装一下coverlet.

    
    dotnet tool install --global coverlet.console
    

    或者和我一样懒的话,直接在项目里面引用 "coverlet.msbuild" 这个包也行.

    <PackageReference Include="coverlet.msbuild" Version="2.5.0" />

    引用之后,执行dotnet test 的时候加多三个参数

    dotnet test /p:CollectCoverage=true /p:CoverletOutput=./results/ /p:CoverletOutputFormat=opencover
    • CollectCoverage 收集覆盖率
    • CoverletOutput 测试报告数据输出路径
    • CoverletOutputFormat 测试报告格式,支持这些格式json (default)/lcov/opencover/cobertura/teamcity

    其他参数自己看一下文档说明就好.

    执行之后大概会看到这些信息.

    PS:可怜的个位数覆盖率....

    这个时候Test项目里面的results 文件夹里面就有一个coverage.opencover.xml 文件了.

    打开这个文件大概长这个样.

    大概率这不是人看的东西.

    然后另一个工具又出来了.

    ReportGenerator

    https://github.com/danielpalme/ReportGenerator

    • ReportGenerator converts XML reports generated by OpenCover, PartCover, dotCover, Visual Studio, NCover, Cobertura or JaCoCo into human readable reports in various formats.

    这个工具可以讲上面这些不是人看的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就能看到对应的测试报告了.

     

    全文完.

    ————————————————————————————————————————————————————

    //生成测试报告

    项目的目录下XUnitTest>dotnet test /p:CollectCoverage=true /p:CoverletOutput=./results/ /p:CoverletOutputFormat=opencover

    //生成报告1
    项目的目录下XUnitTest>dotnet C:Userspli.kelelipeng.nugetpackages eportgenerator4.0.15 ools etcoreapp2.0ReportGenerator.dll -reports:.coverage.opencover.xml -targetdir:Reports


    //生成报告2
    项目的目录下XUnitTest>reportgenerator -reports:./results/*.xml -targetdir:./reports01

    ——————————————————————————————————————————————————————

  • 相关阅读:
    A1-2017级算法上机第一次练习赛 E AlvinZH的儿时梦想——木匠篇
    A1-2017级算法上机第一次练习赛 D 水水的Horner Rule
    A1-2017级算法第一次上机练习赛 C AlvinZH去图书馆
    A1-2017级算法上机第一次练习赛 B ModricWang和数论
    A1-2017级算法上机第一次练习赛 A The stupid owls
    P1-2017级第一次算法上机 H 优美序列差值
    P1-2017级算法第一次上机 G SkyLee在GameStop
    P1-2017级第一次算法上机 F SkyLee的艾露猫
    P1-2017级第一次算法上机 E 比特手链
    P1-2017级第一次算法上机 D 芸茹的课堂测试
  • 原文地址:https://www.cnblogs.com/kelelipeng/p/10530778.html
Copyright © 2011-2022 走看看