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

发表于:2022-11-30 10:06

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:崩坏的领航员    来源:博客园

  环境介绍
  系统: 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;
  之后会显示当前文件覆盖率。
  同时编辑器窗口中也会通过比较显眼的绿色(覆盖)红色(未覆盖)标记覆盖情况。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号