如何解读jacoco.xml文件?

时间:2015-11-23 10:29:20

标签: 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

1 个答案:

答案 0 :(得分:14)

mi = missed instructions (statements) ci = covered instructions (statements) mb = missed branches cb = covered branches

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

谢谢!

  

加分:将这些报告上传到Codecov https://github.com/codecov/example-java