【发布时间】:2015-04-17 23:36:55
【问题描述】:
我正在使用以下目标生成 jacoco 覆盖率报告:
<target name="report" depends="test">
<!-- This task needs the collected execution data and ... -->
<executiondata>
<file file="${result.exec.file}" />
</executiondata>
<!-- the class files and optional source files ... -->
<structure name="JaCoCo Ant Example">
<classfiles>
<fileset dir="${result.classes.dir}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${src.dir}" >
<exclude name="**/*Test*.class"/>
</fileset>
</sourcefiles>
</structure>
<!-- to produce reports in different formats. -->
<html destdir="${result.report.dir}" />
<csv destfile="${result.report.dir}/report.csv" />
<xml destfile="${result.report.dir}/report.xml" />
</jacoco:report>
</target>
问题在于报告考虑了单元测试中的代码,我认为这是一个错误。这样,您的线路覆盖率和指令覆盖率将被人为地增加(因为测试线路被认为是 100% 覆盖)并且报告的正确性受到很大影响。我试图添加这个标签
<exclude name="**/*Test*.class"/
在fileset标签下,希望将testClasses排除在外,但它不起作用。你对我的问题有什么想法吗?我想以编程方式避免 报告修改。 谢谢!
【问题讨论】: