I configured my Ant task as
<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>
Which produces the expected junit result. However, the target/jacoco.exec
is never created. I do not have any error during the ant test report
task execution.
test: [jacoco:coverage] Enhancing junit with coverage
... [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,009 sec
report: [jacoco:report] Loading execution data file /home/usr/Workspaces/my_project/target/jacoco.exec
BUILD FAILED /home/usr/Workspaces/my_project/build.xml:73: Unable to read execution data file /home/usr/Workspaces/my_project/target/jacoco.exec
Total time: 14 seconds
Seems like I am missing something, unable to see what exactly.
I found the cause. It is stupid but there was no logging to indicate the error:
batchtest fork="true" todir="target/test-reports"
The fork parameter was set to false in the batchtest. Setting it back to "true" produces the expected jacoco.exec.