我们正在为以前未经测试的代码添加单元测试,因为需要修改该代码。由于已知任何软件包中的大多数代码都未经过测试,因此很难获得有用的覆盖率指标。
是否有任何工具可用于衡量差异代码覆盖率,即在单元测试中涵盖的给定变更集中修改的代码百分比?
答案 0 :(得分:2)
使用pycobertura。它是一个命令行工具,可以通过区分两个覆盖率报告来防止代码覆盖率回归。它告诉您新代码是否比以前的版本更好或更差,覆盖范围。
$ pycobertura diff ./master/coverage.xml ./myfeature/coverage.xml
它与语言无关,因为它只依赖于您的测试/覆盖工具生成的Cobertura报告(XML文件)。
Pycobertura还可以生成适合CI / CD工具(如Jenkins)的HTML报告。
答案 1 :(得分:1)
Jenkins等持续集成工具可让您保留测试覆盖率的历史记录,并向您显示一个图表,其中包含与之前版本相比的覆盖率趋势。示例:Cobertura Jenkins Plugin
答案 2 :(得分:0)
了解Sonar,这是分析整个应用程序质量和覆盖范围的非常好的工具。
答案 3 :(得分:0)
我最近使用JaCoCo和ConQAT框架进行了代码分析。方法如下:
还有一个blog post包含更详细的描述,包括可视化和更高级的主题,如重构检测,以识别值得测试的更改。
答案 4 :(得分:0)
您可以使用diff-test-coverage。 diff-test-coverage
是Node.js命令行工具,可基于(源代码控制)差异过滤测试覆盖率。
它通过过滤覆盖率报告信息来工作,因此它可以报告新代码的覆盖率信息。
它支持Git和Mercurial以及所有常见的覆盖率报告格式。
答案 5 :(得分:0)
有一个gradle插件来计算差异代码覆盖率
https://github.com/form-com/diff-coverage-gradle
您所需要做的就是为插件提供差异文件,或者您可以使用the example中显示的git diff
工具