我在构建时运行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路径,它可以正常工作。但它不包括报告中的罐子类。
对此有任何可行的解决方案吗?
答案 0 :(得分:1)
当您在报告中包含jar文件时,我发现您使用的是sourcefiles
标记
<fileset dir="${pluginJars}">
<include name="*.jar" />
</fileset>
而不是这个,我建议你试试这个。
<fileset file="${pluginJars}/*.jar"/>
我遇到了同样的问题,并设法通过将目录attribute
更改为file
来使所有工作正常工作。