当报告任务中包含jar时,Jcoco不会生成报告

时间:2014-08-04 06:51:22

标签: java ant jacoco

我在构建时运行JUnits。 Build包括产品的罐子。我们想在jar中的类上运行代码覆盖。我们有未经混淆的罐子。 我们有蚂蚁脚本如下

<target name="codeCoverageReport">
    <jacoco:report>
    <executiondata>
        <file file="${codecoverage.file}"/>
    </executiondata>
    <structure name="eQ Adapter And Plug-ins Code Coverage Report ">
    <classfiles>
        <fileset dir="${classes}">
            <include name="**/*.class" />
        </fileset>
        <fileset dir="${pluginJars}">
            <include name="*.jar" />
        </fileset>
    </classfiles>
    <sourcefiles encoding="UTF-8">
        <fileset dir="${sourceDrive}/src"/>
    </sourcefiles>
    </structure>
    <html destdir="${codecoverage.reports}"/>
    <csv destfile="${codecoverage.reports}/report.csv"/>
    <xml destfile="${codecoverage.reports}/report.xml"/>
    </jacoco:report>
</target>



    <jacoco:coverage enabled="true" destfile="${codecoverage.file}" append="true" includes="**/*.class" >
        <junit printsummary="yes" failureproperty="junit.failed" haltonfailure="no" fork="true" forkmode="once" maxmemory="2048m">
            <classpath refid="test.classpath" />
            <formatter type="xml"  />
            <batchtest todir="${reports.dir}/tmp">
                <fileset dir="${src}">
                    <include name="**/${testFileSet}" />
                </fileset>
            </batchtest>
        </junit> 
    </jacoco:coverage>

我们也试过

<target name="codeCoverageReport">
        <jacoco:report>
        <executiondata>
            <file file="${codecoverage.file}"/>
        </executiondata>
        <structure name="eQ Adapter And Plug-ins Code Coverage Report ">
        <classfiles>
            <fileset dir="${classes}">
                <include name="**/*.class" />
            </fileset>
        </classfiles>
        <sourcefiles encoding="UTF-8">
            <fileset dir="${sourceDrive}/src"/>
            <fileset dir="${pluginJars}">
                <include name="*.jar" />
            </fileset>
        </sourcefiles>
        </structure>
        <html destdir="${codecoverage.reports}"/>
        <csv destfile="${codecoverage.reports}/report.csv"/>
        <xml destfile="${codecoverage.reports}/report.xml"/>
        </jacoco:report>
    </target>

但Ant显示以下错误

创建报告时出错

没有Jar路径,它可以正常工作。但它不包括报告中的罐子类。

对此有任何可行的解决方案吗?

1 个答案:

答案 0 :(得分:1)

当您在报告中包含jar文件时,我发现您使用的是sourcefiles标记

<fileset dir="${pluginJars}">
    <include name="*.jar" />
</fileset>

而不是这个,我建议你试试这个。

<fileset file="${pluginJars}/*.jar"/>

我遇到了同样的问题,并设法通过将目录attribute更改为file来使所有工作正常工作。