Jacoco:聚合多个测试用例方法的分支覆盖报告

时间:2018-01-25 03:33:52

标签: junit ant jacoco

我正在使用Ant JUnit。

<for list="${test.classes.list}"  param="class" delimiter=",">
<sequential>
    <for list="${@{class}}"  param="method" delimiter=",">
        <sequential>
            <jacoco:coverage destfile="${basedir}/jacoco.exec">
            <junit fork="true">
                 ......
                <test name="@{class}" methods="@{method}"/>
            </junit>
            </jacoco:coverage>
            <jacoco:report>     
                ......
                <csv destfile="coverage/@{class}.@{method}/report.csv"/>
            </jacoco:report>
        </sequential>
    </for>
</sequential>

在属性文件中,我有:

test.classes.list=a.b.C,d.e.F
a.b.C=test1,test2
d.e.F=test1,test2,test3

Jacoco将为每个测试用例方法生成一份报告。

问题是每个类的分支覆盖率不准确,因为覆盖的分支可能重叠。

如何汇总报告以获得整个项目的正确分支覆盖率?

1 个答案:

答案 0 :(得分:1)

JaCoCo带有Ant tasks来启动带有执行记录的Java程序,以及根据记录的数据创建覆盖率报告。可以使用任务coverage,代理,转储和merge来收集和管理执行数据。

这是他们网页上有关如何合并一组*.exec文件的示例:

<jacoco:merge destfile="merged.exec">
    <fileset dir="executionData" includes="*.exec"/>
</jacoco:merge>