首页 > 其他分享 >使用coverlet统计单元测试的代码覆盖率

使用coverlet统计单元测试的代码覆盖率

时间:2022-09-24 19:01:02浏览次数:46  
标签:Test1 覆盖 覆盖率 单元测试 coverlet public TestFunc

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

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

但是好的单元测试可以显著提高代码质量, 减少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

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

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

标签:Test1,覆盖,覆盖率,单元测试,coverlet,public,TestFunc
From: https://www.cnblogs.com/CollapseNav/p/16726260.html

相关文章

  • junit单元测试
    测试分类1黑盒测试:不需要写入代码给输入值康程序是否能够输出期望的值2白盒测试:需要写代码的关注程序具体的执行流程junit使用白盒测试步骤1定义......
  • Spring Boot项目——单元测试
    单元测试的作用/为什么要进行单元测试首先开发者要知道一点,无论什么情况下,测试一定要做!测试一定要做!测试一定要做!单元测试出现前测试方法启动整个应用,用户通过直接......
  • python学习笔记:pytest单元测试框架
    一、安装配置和运行规则1、安装:pipinstallpytest查看安装版本:pytest--version 2、Pytest用例运行规则用Pytest写用例时候,一定要按照下面的规则去写,否则不符合规......
  • 通过自动化单元测试的形式守护系统架构
    1背景随着需求开发迭代,代码库规模逐渐变大,新的团队成员引入等诸多因素,系统起初制定的架构规则不可避免遭到破坏。不仅仅是破坏团队的统一开发规范,更为重要的是随着代码库......
  • Junit执行单元测试用例成功,mvn test却失败的解决方法
    解决方法:在pom.xml中添加maven插件<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2......
  • mocha、chai和supertest单元测试
    mocha单元测试 1.因为有时候在代码中加了新的东西需要反复测试接口或者别人要求重新跑接口非常的繁琐 2.所有我们需要一个帮我们重复测试的东西 那就是mocha ......
  • 代码覆盖率和功能覆盖率之间的区别
    代码覆盖率代码覆盖率直接来自设计代码。它不是用户指定的。代码覆盖的优点之一是它自动评估设计的源码在仿真/回归期间被执行的程度,从而识别设计源码中在仿真期间未被执......
  • 如何写出有效的单元测试
      什么是单元测试 《单元测试的艺术》中对单元测试的定义: 一个单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些......
  • 只懂黑盒测试也能学会的代码覆盖率及精准化测试
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取测试覆盖率是对测试完成程度的度量。它通常依据某种覆盖准则来对测试用例执行情况进行衡量,以判......
  • 单元测试
    什么是单元测试(unittesting)单元测试,是指对软件中的最小可测试单元进行检查和验证单元就是人为规定的最小的被测功能模块一般来说,要根据实际情况去判定其具体含义,如C......