xml - 如何解释 jacoco.xml 文件?

标签 xml parsing code-coverage jacoco

我在 Maven 项目中使用 JACOCO 工具。它创建代码覆盖 XML 文件 “jacoco.xml”。当我要解析这个 xml 时,我需要知道 xml 文件中某些属性的含义。 xml包含以下元素:

    <sourcefile name="Ops.java">
        <line nr="3" mi="0" ci="3" mb="0" cb="0"/>
        <line nr="5" mi="0" ci="4" mb="0" cb="0"/>
        <line nr="11" mi="0" ci="5" mb="2" cb="2"/>
        <line nr="12" mi="0" ci="2" mb="0" cb="0"/>
        <line nr="14" mi="8" ci="0" mb="0" cb="0"/>
        <line nr="15" mi="2" ci="0" mb="0" cb="0"/>
        <counter type="INSTRUCTION" missed="10" covered="14"/>
        <counter type="BRANCH" missed="2" covered="2"/>
        <counter type="LINE" missed="2" covered="4"/>
        <counter type="COMPLEXITY" missed="2" covered="3"/>
        <counter type="METHOD" missed="0" covered="3"/>
        <counter type="CLASS" missed="0" covered="1"/>
    </sourcefile>

变量“nr”似乎表示行号。变量“mi”、“ci”、“mb”和“cb”的含义是什么?

这里是生成的 html 输出中显示的代码覆盖率。

generated html output

最佳答案

mi = 错过的指令(语句) ci = 覆盖指令(语句) mb = 错过的分支 cb = 覆盖分支

  • mbcb 大于 0 时,该行是一个分支。
  • mbcb0 时,该行是一条语句。
  • cb/(mb+cb)(第 11 行)是 2/4 部分命中(因此为黄色)
  • 当不是分支且 mi == 0 时命中该行(因此第 5 行为绿色)

谢谢!

Bonus: Upload these reports to Codecov https://github.com/codecov/example-java

关于xml - 如何解释 jacoco.xml 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33868761/

相关文章:

java - TextView 不在主屏幕上打印字符串

c# - 我永远无法预测 XMLReader 的行为。有什么理解技巧吗?

java - 解析节点内具有相同属性的 XML 文件

mysql - 如何从脚本将xml插入mysql?

python - 如何将主链接添加到子链接html,以便可以调用该链接?

python - “python setup.py notests”报告包的 __init__.py 未被测试覆盖

java - 如何在不使用正则表达式的情况下解析操作数和运算符的数学表达式并解决它?

python - 解析python代码进行静态分析

java - Cobertura,压制线永远不应该出现

unit-testing - Intellij Idea 如何显示测试覆盖线