单元测试是个好东西, 可以在一定程度上兜底

虽然写单元测试这件事情非常麻烦

但是好的单元测试可以显著提高代码质量, 减少bug, 避免无意中的修改导致其他模块出错

写测试用例的过程中, 靠人力去确保所有代码都被覆盖是一件挺麻烦的事情

本文主要介绍如何在xunit下使用coverlet统计测试覆盖率

环境介绍

系统: wsl2

编辑器: vscode

插件: C# + Coverlet + Coverage Gutters

代码

TestFunc.cs

public class TestFunc
{
public static string Test1()
{
return "Test1";
}
public static string Test2()
{
return "Test2";
}
}

测试代码:

[Fact]
public void Test1()
{
Assert.True(TestFunc.Test1()=="Test1");
Assert.False(TestFunc.Test1()=="Test2");
}

通过 dotnet test 运行后

只会显示多少通过, 多少失败, 并不知道哪些代码被覆盖到了

显示覆盖率

修改csproj

首先需要修改单元测试项目的 csproj 文件

在开头的 PropertyGroup 块中添加

<CollectCoverage>true</CollectCoverage>
<CoverletOutputFormat>cobertura</CoverletOutputFormat>

用于生成测试的覆盖报告 coverage.cobertura.xml

之后在 ItemGroup 中添加

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

之后运行 dotnet test 测试

就会多显示一些覆盖率的内容

查看具体的覆盖情况

安装 Coverlet 和 Coverage Gutters 插件之后

进入被调用的文件内, 在vscode下方状态栏中会显示当前文件的覆盖率情况

上图为初始状态

点击这个 Watch 之后会开始解析 coverage.cobertura.xml

之后会显示当前文件覆盖率

同时编辑器窗口中也会通过比较显眼的绿色(覆盖)红色(未覆盖)标记覆盖情况

使用coverlet统计单元测试的代码覆盖率的更多相关文章

  1. junit配合catubuter统计单元测试的代码覆盖率

    1.视频参考孔浩老师ant视频笔记 对应的build-junit.xml脚步如下所示: <?xml version="1.0" encoding="UTF-8&qu ...

  2. TestNG配合catubuter统计单元测试的代码覆盖率

    build-testNG.xml对应的ant脚本为 <?xml version="1.0" encoding="UTF-8"?> <proje ...

  3. VS2013单元测试及代码覆盖率分析--Xunit

    1,Javaweb中有jmeter.jacoco.ant.badboy等集成测试代码覆盖率的方式,C#代码的覆盖率怎么测试呢?VS2013的IDE上本身并未集成测试的工具,以下讲解VS2013中C#代 ...

  4. Java开发工具IntelliJ IDEA单元测试和代码覆盖率图解

    原文 http://www.cnblogs.com/xiongmaopanda/p/3314660.html Java开发工具IntelliJ IDEA使用教程:单元测试和代码覆盖率 本文将展示如何使 ...

  5. Jenkins构建Android项目持续集成之单元测试及代码覆盖率

    单元测试 在软件开发中一直在推崇TDD(测试驱动开发),但是一直不能被有效的执行或者并不是真正的测试驱动开发(先开发后写单元测试),因为我们懒!而Android开发又是大多应用层面的开发,很多都是和视 ...

  6. [Azure Devops] 获取单元测试的代码覆盖率

    1. 获取代码覆盖率 上一篇文章里,我们在 Pipeline 中插入一个单元测试并把所有单元测试都通过作为 Pipeline 通过的硬性要求.除此以外,我们还可以获取单元测试的代码覆盖率,用作衡量代码 ...

  7. 使用JaCoCo统计单元测试代码覆盖率

    1 JaCoCo介绍 JaCoCo是EclEmma团队基于多年覆盖率库使用经验总结而研发的一个开源的Java代码覆盖率库. 2 JaCoCo覆盖率计数器 JaCoCo 包含了多种尺度的覆盖率计数器(C ...

  8. Java实现的词频统计——单元测试

    前言:本次测试过程中发现了几个未知字符,这里将其转化为十六进制码对其加以区分. 1)保存统计结果的Result文件中显示如图: 2)将其复制到eclipse环境下的切分方法StringTokenize ...

  9. 【week3】词频统计 单元测试

    使用Eclipse 集成的Junit进行单元测试.单元测试的核心包括断言.注解. 测试代码如下: @BeforeClass // 针对所有测试,只执行一次,且必须为static void public ...

随机推荐

  1. NOI / 1.1编程基础之输入输出全题详解(8515字)

    目录 01:Hello, World! 02:输出第二个整数 03:对齐输出 04:输出保留3位小数的浮点数

  2. c++小游戏--五子棋

    大家好,我是芝麻狐! 这是我自制的小游戏,目前仅支持devc++. 如果你没有c++软件, 请打开网站GDB online Debugger | Compiler - Code, Compile, R ...

  3. Python词频分析

    Python词频分析 一.前言 在日常工作或者生活中,有时候会遇到词频分析的场景.如果是要进行词频分析,那么首先需要对句子进行分词,将句子中的单词进行切割并按照词性进行归类. 在Python中有个第三 ...

  4. 20220722-Java中this关键字

    this关键字知识总结 学习资源:B站韩顺平老师Java入门教学 代码示例1 public class This01 { public static void main(String[] args) ...

  5. [BJDCTF2020]Cookie is so stable-1|SSTI注入

    1.打开之后在各个界面查看源代码,未发现很明显的有用信息,仅发现了提示,结果如下: 2.尝试输入数据,结果就是输入什么就回显什么,也未进行过滤,尝试进行sql注入失败,结果如下: 3.那就根据提示抓包 ...

  6. EB和Varuxn的单字聊天

    持续更新! 本文已经征得\(Varuxn\)同意,仅当做记录网课的趣事和"深厚"的友情 原标题<ErB和Varuxn的单字聊天> 原标题来源: 这个想法来源是 \(Va ...

  7. 羽夏看Linux内核——环境搭建

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并 ...

  8. 在生鲜零售业,DolphinScheduler 还能这么玩!

    点击上方 蓝字关注我们 ✎ 编 者 按 2021 年,Apache DolphinScheduler 社区又迎来了新的蓬勃发展,社区活跃度持续提高.目前,项目 GitHub Star 已达 6.7k, ...

  9. Docker 容器虚拟化

    Docker 容器虚拟化 1.虚拟化网络 Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络栈信息.不管是虚拟机 ...

  10. LuoguP2953 [USACO09OPEN]牛的数字游戏Cow Digit Game(博弈论)

    1~9显然,后面平\(A\)过去 #include <iostream> #include <cstdio> #include <cstring> #include ...