9 款适用于 Java、Python、C、C++、C#、.NET 的最佳代码覆盖率工具

代码覆盖率测试是一个重要的指标,它量化了程序源代码被测试的程度。市面上有大量的代码覆盖率工具,为您的项目选择一个可能会很有挑战性。

以下是精选的顶级代码覆盖率测试工具列表,包含流行功能和最新的下载链接

Java、Python、C++、.Net 的代码覆盖率工具

名称 链接
Cobertura https://cobertura.github.io/cobertura/
Coverage.py https://coverage.readthedocs.io/en/6.0/
JaCoCo https://www.eclemma.org/jacoco/
OpenClover https://openclover.org/

1) Cobertura

Cobertura 是流行的开源代码覆盖率工具之一。它允许您通过 Maven 和 Ant 或 Cobertura CLI 执行任务。您可以将其与其他多个 QA 工具集成。

Cobertura

功能

  • 无需源代码即可测量覆盖率
  • 它是最好的 Java 代码覆盖率工具之一,可以帮助您找到 Java 程序中哪些部分缺乏测试覆盖率
  • 允许您以 HTML 和 XML 格式表示报告
  • 有助于测试类的分支和方法

下载链接: https://cobertura.github.io/cobertura/


2) Coverage.py

Coverage.py 是另一个有用的代码覆盖率工具。它是最好的测试覆盖率工具之一,可以帮助您监控 Python 程序,并记录哪些代码部分已被执行。

Coverage.py

功能

  • Coverage.py 通过配置文件帮助您指定要分析的源文件
  • 它还有助于分析源文件,找出可能已被执行但未执行的代码。

下载链接: https://coverage.readthedocs.io/en/6.0/


3) JaCoCo

JaCoCo 是一个免费的 Java 代码覆盖率工具,根据 Eclipse Public License 分发。它是一个由 EclEmma 开发的开源免费 Java 代码覆盖率工具。

JaCoCo

功能

  • JaCoCo 提供指令、行和分支覆盖率
  • 它是最好的 Java 代码覆盖率工具之一,支持 Java 7 和 Java 8
  • 有助于测试类的分支和方法
  • 提供易于导航的 HTML 或 XML 报告

下载链接: https://www.eclemma.org/jacoco/


4) OpenClover

OpenClover 工具帮助您测量 Java 和 Groovy 的代码覆盖率,并收集超过 20 个代码指标。它帮助您显示应用程序未测试的区域。它是最好的测试覆盖率工具之一,可以帮助您结合覆盖率和指标来查找风险最高的代码。

OpenClover

功能

  • 帮助您更快地运行测试
  • 允许您专注于测试的必要部分
  • 支持分支和语句覆盖
  • 允许您生成基于 XML 的报告,结合 ReportGenerator,可以生成基于 HTML 的覆盖率报告
  • 帮助您在应用程序和测试之间保持平衡

下载链接: http://openclover.org/


5) Bullseye Coverage

BullseyeCoverage 是一个 C++ 代码覆盖率软件,用于 C++ 代码覆盖,并告诉您源代码有多少被测试了。该工具允许您执行单元测试、集成测试和最终发布。

功能

  • 提供更好的 C++ 代码覆盖率测量
  • 它是最好的测试覆盖率工具之一,可以帮助您创建更可靠的代码并节省时间
  • 允许您包含或排除项目的任何部分代码
  • 合并分布式测试的结果

下载链接: http://www.bullseye.com/


6) NCover

NCover 是 .Net 程序和应用程序的高级代码覆盖率工具之一。它支持语句覆盖和分支覆盖。该代码覆盖率工具提供开源版本和商业许可版本。

NCover

功能

  • 根据您的定制需求进行 .NET 代码覆盖
  • 帮助您跨整个团队测试、跟踪和管理统一的覆盖率数字
  • 关于覆盖率的详细集中数据
  • 它是最好的 .net 代码覆盖率工具之一,提供广泛的文档和用户支持
  • 它是最好的 C# 代码覆盖率工具之一,可以帮助您执行手动和覆盖率测试
  • 在敏捷环境中更快、更自信地交付产品

下载链接: http://www.ncover.com/


7) Vector Software

VectorCAST 允许您实施一致的流程来管理测试活动并报告关键质量指标。这款软件测试工具为单元测试、回归管理和代码覆盖率分析提供了经济高效的方法。

Vector Software

功能

  • 轻松的测试协作
  • 系统测试自动化
  • 质量趋势和变更影响分析
  • 支持并行测试
  • 基于 Web 的质量仪表板

下载链接: https://www.vector.com/in/en/products/products-a-z/software/vectorcast/


8) Devel:Cover

Devel cover 为 Perl 提供代码覆盖率测试指标。借助此代码覆盖率工具,您可以发现未被测试覆盖的代码区域。它有助于创建测试以提高覆盖率。

Devel:Cover

功能

  • 提供一些报告,包括各种 HTML 输出、文本报告
  • 报告了语句、分支、条件、子例程和 pod 覆盖率信息

下载链接: https://metacpan.org/release/PJCJ/Devel-Cover-1.23


9) dotCover

JetBrains 的 dotCover 是一个 .NET 单元测试运行器和代码覆盖率工具。它是最好的 C# 代码覆盖率工具之一,允许您与 JetBrains Rider 和 Visual Studio 集成。您还可以计算 .NET、Silverlight 或 .NET Core 应用程序的语句级代码覆盖率报告。

dotCover

功能

  • 允许您根据业务需求可视化代码覆盖率
  • 它是最好的 .net 代码覆盖率工具之一,提供了一个控制台实用程序,可与持续集成服务器一起使用
  • 帮助您使用覆盖率过滤器自定义覆盖率分析
  • 允许您使用快捷键查找哪些单元测试覆盖了特定语句

下载链接: https://www.jetbrains.com/dotcover/


10) Visual Studio

Visual Studio 的代码覆盖率功能可以帮助您确定您的项目代码的哪些部分被单元测试等编码测试所测试。该工具允许您查看之前的测试结果。

Visual Studio

功能

  • 帮助您查看之前的测试结果
  • 使结果易于阅读为文本,选择导出代码覆盖率结果
  • 允许您合并多次运行的结果
  • 允许您导出代码覆盖率结果以保存合并操作的结果

下载链接: https://vscode.js.cn/


11) Istanbul

Istanbul 是用于 Javascript 的最好的代码覆盖率工具之一。它支持使用 babel-plugin 的 ES6/ES2015+。该工具提供了所有 javascript 仪器库,帮助您跟踪语句、分支和函数覆盖率。

Istanbul

功能

  • 记者集合提供终端和 HTML 输出
  • 支持最流行的 JavaScript 测试框架
  • 支持仪器化子进程,使用 NYC 命令行界面

下载链接: https://istanbul.js.org/

常见问题

代码覆盖率是指测试了程序源代码的程度的度量。如果您正在寻找可以帮助的工具,您可能想探索这些代码审查工具,这些工具可以使过程更顺畅、更有效。

以下是一些最好的代码覆盖率工具

  • Cobertura
  • Coverage.py
  • JaCoCo
  • OpenClover
  • Bullseye Coverage
  • NCover
  • Vector Software
  • Devel:Cover

使用代码覆盖率的一些主要原因如下

  • 有助于衡量测试实现的效率。
  • 提供量化测量。
  • 定义了源代码被测试的程度。

在选择代码覆盖率工具之前,您应该考虑以下因素

  • 兼容性。
  • 工具的效率。
  • 许可成本(如果适用)。
  • 客户支持质量。
  • 员工工具培训成本。
  • 工具的硬件/软件要求。
  • 工具供应商的支持和更新政策。
  • 公司评论。