如何使用Ant对来自Jacoco报告的类进行分组

时间:2017-10-03 10:49:47

标签: java ant jacoco

我使用Jacoco和Ant为几个模块的类生成代码覆盖率报告。

sourceDir /

  • 模块1 /
    • 目标/类/ class11
    • 目标/类/ class12
  • 模块2 /
    • 目标/类/ class21
    • 目标/类/ class22

Ant任务: ...

<property name="src.dir" location="sourceDir"/>

<target name="report">
    <jacoco:report>

        <executiondata>
            <file file="${result.exec.file}" />
        </executiondata>

        <structure name="JaCoCo Report">
            <classfiles>
                <fileset dir="${src.dir}" includes="**/target/classes/**" />
            </classfiles>
            <sourcefiles encoding="UTF-8">
                <fileset dir="${src.dir}" />
            </sourcefiles>
        </structure>

        <html destdir="${result.report.dir}" />
        <csv destfile="${result.report.dir}/report.csv" />
        <xml destfile="${result.report.dir}/report.xml" />
    </jacoco:report>
</target>

运行Ant任务我收到类似于此的报告:

报告

  • class11
  • class12
  • class21
  • class22

想要得到这样的东西:

报告:

  • 模块1 /
    • class11
    • class12
  • 模块2 /
    • class21
    • class22

1 个答案:

答案 0 :(得分:1)

http://www.jacoco.org/jacoco/trunk/doc/ant.html引用文档:

  

可以使用组元素的层次结构来细化结构。这样,覆盖率报告可以反映软件项目的不同模块。对于每个组元素,可以单独指定相应的类和源文件。例如:

<structure name="Example Project">
    <group name="Server">
        <classfiles>
            <fileset dir="${workspace.dir}/org.jacoco.example.server/classes"/>
        </classfiles>
        <sourcefiles>
            <fileset dir="${workspace.dir}/org.jacoco.example.server/src"/>
        </sourcefiles>
    </group>
    <group name="Client">
        <classfiles>
            <fileset dir="${workspace.dir}/org.jacoco.example.client/classes"/>
        </classfiles>
        <sourcefiles>
            <fileset dir="${workspace.dir}/org.jacoco.example.client/src"/>
        </sourcefiles>
    </group>
    ...
</structure>