有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java差异代码覆盖率

我们正在向以前未经测试的代码中添加单元测试,因为需要修改该代码。很难获得有用的覆盖率指标,因为已知任何包中的大多数代码都未经测试

是否有任何工具可用于测量差异代码覆盖率,即单元测试覆盖的给定变更集中修改的代码百分比


共 (6) 个答案

  1. # 1 楼答案

    看看Sonar,它是分析整个应用程序质量和覆盖范围的好工具

  2. # 2 楼答案

    你可以用diff-test-coverage来做这个diff-test-coverage是一个节点。js命令行工具,根据(源代码控制)差异过滤测试覆盖率

    它的工作原理是过滤覆盖率报告信息,以便报告新代码的覆盖率信息

    diff-test-coverage

    它支持Git和Mercurial以及所有常见的报道格式

  3. # 3 楼答案

    使用pycobertura。它是一个命令行工具,通过区分两个覆盖率报告来防止代码覆盖率回归。它会告诉你你的新代码比以前的版本更好还是更差,覆盖率方面

    $ pycobertura diff ./master/coverage.xml ./myfeature/coverage.xml
    

    它与语言无关,因为它只依赖于测试/覆盖工具生成的Cobertura报告(XML文件)

    Pycobertura还可以生成HTML报告,这些报告非常适合于CI/CD工具,比如Jenkins

    enter image description here

    https://github.com/aconrad/pycobertura

  4. # 4 楼答案

    我最近正是这样做的,使用JaCoCoConQAT框架进行代码分析。方法如下:

    1. 从基线版本和头部版本加载源代码(如果您也在两者之间进行了测试,则可能会加载中间版本)
    2. 逐个比较程序历史记录方法,以确定发生更改的位置
    3. 对每个测试版本的覆盖率信息进行注释
    4. 搜索自上次更改后未涵盖的方法

    还有一个blog post包含更详细的描述,包括可视化和更高级的主题,如重构检测,以仅识别值得测试的更改

  5. # 6 楼答案

    像Jenkins这样的持续集成工具可以让你保存测试覆盖率的历史记录,并向你展示一个图表,其中包括与以前版本相比的覆盖率趋势。例如:Cobertura Jenkins Plugin