如何解释jacoco.xml文件?

如何解释jacoco.xml文件?,xml,parsing,code-coverage,jacoco,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"/> &

我正在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输出中显示的代码覆盖率


mi=遗漏的指令(声明)
ci=涵盖的说明(声明)
mb=错过的分支
cb=覆盖分支

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

奖励:将这些报告上载到Codecov


mi=遗漏的指令ci=包含的指令mb=遗漏的分支cb=包含的分支ps:谢谢你的回答。@你应该把它变成一个答案。你可以从中获得report.xml中的所有定义。