我们正在向以前未测试的代码添加单元测试,因为需要修改该代码。 由于已知任何包中的大多数代码都未经测试,因此很难获得有用的覆盖率指标。
是否有任何工具可用于测量差异代码覆盖率,即单元测试覆盖的给定变更集中修改的代码的百分比?
使用pycobertura。它是一个命令行工具,通过比较两个覆盖率报告来防止代码覆盖率回归。它告诉您新代码在覆盖范围方面是比以前的版本更好还是更差。
$ pycobertura diff ./master/coverage.xml ./myfeature/coverage.xml
它与语言无关,因为它仅依赖于测试/覆盖工具生成的 Cobertura 报告(XML 文件)。
Pycobertura 还可以生成 HTML 报告,非常适合 Jenkins 等 CI/CD 工具。
像 Jenkins 这样的持续集成工具可以让您保留测试覆盖率的历史记录,并向您显示一个图表,其中包含与以前的版本相比的覆盖率趋势。示例:Cobertura Jenkins 插件
有一个 gradle 插件可以计算增量代码覆盖率
https://github.com/gw-kit/delta-coverage-plugin
Delta Coverage 插件生成标准 JaCoCo HTML 报告,但仅突出显示修改后的代码。
了解一下 Sonar,它是分析整个应用程序质量和覆盖范围的好工具。
您可以使用 diff-test-coverage 为此。
diff-test-coverage
是一个 Node.js 命令行工具,它根据(源代码控制)差异过滤测试覆盖率。
它的工作原理是过滤覆盖率报告信息,因此它可以报告新代码的覆盖率信息。
它支持 Git 和 Mercurial 以及所有常见的覆盖率报告格式。