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:\Users\pli.kelelipeng\.nuget\packages\reportgenerator\4.0.15\tools\netcoreapp2.0\ReportGenerator.dll -reports:.\coverage.opencover.xml -targetdir:Reports

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

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

.NET Core单元测试覆盖率统计coverlet配置和使用的更多相关文章

  1. EclEmma单元测试覆盖率统计插件

    EclEmma是Eclipse里的一个插件,安装简单,覆盖率显示直观.安装EclEmma.打开Eclipse,点击Help → Intall New SofaWare → Work with 输入 h ...

  2. Xcode5 统计单元测试覆盖率(仅限XCTest)

    概要 通过本篇文章,你将学会如何在Xcode5下使用统计XCTest测试代码的覆盖率,以及如何快速得到测试覆盖率的图形化报表. 为什么要特别说明Xcode5下的代码覆盖率统计,原因是,以前的方法在新环 ...

  3. .NET Core单元测试之搞死开发的覆盖率统计(coverlet + ReportGenerator )

    .NET Core单元测试之搞死开发的覆盖率统计 这两天在给项目补单元测试,dalao们要求要看一下测试覆盖率 翻了一波官方test命令覆盖率倒是有支持了,然而某个更新日志里面写着 ["Su ...

  4. (转)使用CUnit进行单元测试和覆盖率统计

    CUnit安装 如果能联网的话,直接 yum install CUnit-devel.x86_64 就完成安装了,注意要安装devel版本,这样才能找到头文件. 编写单元测试代码 CUnit的测试是单 ...

  5. 使用coverage工具统计python单元测试覆盖率

    Coverage简介 Coverage是一种用于统计Python代码覆盖率的工具,通过它可以检测测试代码对被测代码的覆盖率如何.Coverage支持分支覆盖率统计,可以生成HTML/XML报告. 官方 ...

  6. Jenkins集成jacoco收集单元测试覆盖率

    Jenkins集成jacoco收集单元测试覆盖率 2020-02-28 目录 0 整体思路1 Jenkins创建JacocoIntegrateTestDemo项目2 配置源码管理3 配置Build4 ...

  7. [转载] JaCoCo:分析单元测试覆盖率的利器

    转载自http://www.ibm.com/developerworks/cn/java/j-lo-jacoco/和http://www.cnblogs.com/chenfengmugu/p/4937 ...

  8. Asp.Net Core 单元测试正确姿势

    背景 ASP.NET Core 支持依赖关系注入 (DI) 软件设计模式,并且默认注入了很多服务,具体可以参考 官方文档, 相信只要使用过依赖注入框架的同学,都会对此有不同深入的理解,在此无需赘言. ...

  9. python工业互联网应用实战14——单元测试覆盖率

    前面的章节我们完成了任务管理主要功能的开发及单元测试编写,可如何知道单元测试效果怎么样呢?测试充分吗?还有没有没有测到的地方呢? 本章节我们介绍一个统计测试代码覆盖率的利器Coverage,Cover ...

随机推荐

  1. ROS探索总结(二)——ROS总体框架

    个人分类: ROS 所属专栏: ROS探索总结   一.  总体结构        根据ROS系统代码的维护者和分布来标示,主要有两大部分:      (1)main:核心部分,主要由Willow G ...

  2. go语言的源码文件的分类及含义

    Go源码文件:名称以.go为后缀,内容以Go语言代码组织的文件 多个Go源码文件是需要用代码包组织起来的 源码文件分为三类:命令源码文件.库源码文件(go语言程序) 测试源码文件(辅助源码文件) 命令 ...

  3. apt-get默认下载路径

    备忘: Ubuntu中apt-get下载的安装包都在哪里呢? 在/var/cache/apt/archives里,里边的安装包可以取出来以备后用.

  4. 51NOD1835 完全图

    传送门 分析 令f(i,j)表示i点完全图有j个联通块的方案数. 讨论有i-1个点已经固定了,我们拉出一个代表元素然后讨论它的集合大小然后组合数算一下就可以了. $$ dp(i,j) = \sum_{ ...

  5. Paint类的介绍

    * Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色, * 样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法, * 大体上可以分为两类,一类与图形绘制相关,一类与 ...

  6. Html5代码片段收集

    HTML5 启动模板 当启动一个新的项目的时候,你需要一个启动模板.这里是一个简洁干净的模板,可以作为 HTML5 项目的基础. <!DOCTYPE html> <html> ...

  7. 如何破解IDEA

    https://blog.csdn.net/samery1020/article/details/79489164 http://idea.lanyus.com/ 我们在选择JAVA 使用IDEA时都 ...

  8. ubuntu - 14.04,安装、配置GO语言开发工具Eclipse!!

    在配置Eclipse之前,我们必须保证下面这些都已经安装,并且正常工作了: 一,Go语言:参考文章 http://blog.csdn.net/sunylat/article/details/49859 ...

  9. 【bzoj3813】: 奇数国 数论-线段树-欧拉函数

    [bzoj3813]: 奇数国 题意:给定一个序列,每个元素可以分解为最小的60个素数的形式.(x=p1^k1*p2^k2*......p60^k60)(p1=2,p2=3,…,p60=281) 支持 ...

  10. ThinkPHP3.2.3完整版创建前后台入口文件 http://jingyan.baidu.com/article/7e4409533fc1092fc1e2ef53.html

    ThinkPHP3.2.3完整版创建前后台入口文件   1 2 3 4 5 6 7 分步阅读 ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的优秀的国产php框架,值得我们去探索学 ...