IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> .Net core基于xUnit的单元测试查看测试覆盖率 -> 正文阅读

[开发测试].Net core基于xUnit的单元测试查看测试覆盖率

写代码如何保证代码质量,基本大家都知道要做单元测试,那如何知道你单元测试是不是测试到了所有代码场景呢,这就要通过测试覆盖率来体现了。

测试覆盖率,一般来说主要是Line代码行数覆盖率,同样还会有Branch分支覆盖率,Method方法覆盖率等,主要是各自的侧重点不同,但只要Line的覆盖率是100%,其它几项的覆盖率也必定是100%。

如何创建单元测试,这里就一带而过,就是新建项目,筛选测试,然后按自己喜好选择一个测试框架,这里就选了xUnit
在这里插入图片描述
具体单元测试怎么写,这里就不说了,只说下如何查看你的代码测试覆盖率。

Visual Studio
Visual Studio本身就支持查看测试覆盖率,具体就是测试--分析所有测试的代码覆盖率
在这里插入图片描述
执行完毕后,可以看到代码覆盖率结果
在这里插入图片描述

可以通过点击展开,查看都是哪些代码没有被覆盖,最终到代码层次时,会显示代码覆盖色,通过颜色差异,可以清楚的看到哪些代码没被单元测试覆盖。
在这里插入图片描述

coverlet
要用这个首先需要在单元测试项目中添加引用:coverlet.collectorcoverlet.msbuild,在Nuget资源管理器中进行添加即可,之后就可以通过以下指令在PowerShell中执行单元测试

dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:Exclude="[xunit*]\*" /p:CoverletOutput="../TestResults/"

CoverletOutput对应的是报告生成路径,../TestResults/是为了保持和VS的路径名称一致,如果你的sln文件与默认层次结构不一致,那么路径要进行相应调整。
在这里插入图片描述
PS中只能看到单元测试覆盖率的一个汇总结果,然后这个覆盖率数字呢和VS统计的还有一些差异,当然这里我们也就不关注了,毕竟差异不大,而且测试覆盖率一般只要达到80%就可以认为单元测试已经足够。

上面的统计结果显然不能帮助我们提升测试覆盖率,这时候就需要reportgenerator来查看究竟哪些代码没被覆盖。注意reportgeneratorCLI工具,在nuget上会有对应的指令,该指令同样可以在PS中执行。

dotnet tool install --global dotnet-reportgenerator-globaltool --version 5.0.4

注意.Net core版本不同,使用的reportgenerator版本也不同,dotnet-reportgenerator-globaltool是针对.Net core 3.x及以上版本的,.Net core 2.x版本对应的是dotnet-reportgenerator-cli

安装完reportgenerator之后,就可以通过指令生成html报告页面,reports对应的是前面dotnet test指令生成的具体汇总xml,targetdir为你最终要生成的html位置。

reportgenerator "-reports:.\TestResults\coverage.netcoreapp3.1.cobertura.xml" "-targetdir:.\TestResults\html" -reporttypes:HTML;

最新版的reportgenerator需要.Net 6.0版本,如果没安装过VS2022的话,会有相应的提示。
在这里插入图片描述
你可以到微软的官网地址进行下载,然后只需要下载安装runtime就行
在这里插入图片描述
上述指令执行完成后,可以到相应的目录打开index.htm,这时候就可以比较直观的查看到统计的各项覆盖率。
在这里插入图片描述
这里每行链接都是可以点击的,进去后就可以看到更详细的覆盖率,同样通过颜色差异来进行显示。
在这里插入图片描述

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:52:26  更:2022-03-12 17:52:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:19:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码