我将Ant任务配置为
<target name="test" depends="init">
<jacoco:coverage destfile="target/jacoco.exec">
<junit printsummary="yes" haltonfailure="yes" fork="yes" forkmode="once">
<classpath refid="my_project.path"/>
<formatter type="plain"/>
<formatter type="xml"/>
<batchtest fork="false" todir="target/test-reports">
<fileset dir="test">
<include name="**/*Test.java"/>
</fileset>
</batchtest>
</junit>
</jacoco:coverage>
</target>
生成预期的junit结果。但是,永远不会创建target/jacoco.exec
。我在ant test report
任务执行过程中没有任何错误。
test: [jacoco:coverage]用coverage增强junit
... [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,009 sec
report: [jacoco:report]加载执行数据文件/home/usr/Workspaces/my_project/target/jacoco.exec
BUILD FAILED/home/usr/workspace/my_project/BUILD .xml:73:无法读取执行数据文件/home/usr/workspace/my_project/target/jacoco.exe
总时间:14秒
似乎我错过了什么,无法看到到底是什么
我找到原因了。这是愚蠢的,但没有日志显示错误:
batchtest fork="true" todir="target/test-reports"
在batchtest中fork参数设置为false。处理步骤将其设置回"true"将生成预期的jacoco.exec。
仅运行report
任务是不够的。您必须配置并运行coverage
Ant任务,以便将覆盖率数据记录到jacoco.exec
文件中。请看这里
面对同样的问题,对我来说我的junit是不合适的。点击这里的链接