Search code examples
javaantjacoco

Jacoco ant task - no jacoco.exec output


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.


Solution

  • 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.