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 secreport: [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.
Running the report task by itself is not sufficient. You will have to configure and run a coverage Ant task in order to enable coverage data to be recorder into the jacoco.exec file. See here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With