Jacoco ant任务 - 没有jacoco.exec输出

时间:2013-04-04 09:47:26

标签: java ant jacoco

我将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.execant test report任务执行期间我没有任何错误。

  

测试:[jacoco:coverage]使用覆盖率增强junit

...

[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,009 sec
     

报告:[jacoco:report]加载执行数据文件   /home/usr/Workspaces/my_project/target/jacoco.exec

     

BUILD FAILED /home/usr/Workspaces/my_project/build.xml:73:无法阅读   执行数据文件/home/usr/Workspaces/my_project/target/jacoco.exec

     

总时间:14秒

好像我错过了一些东西,无法看清楚到底是什么。

3 个答案:

答案 0 :(得分:11)

我找到了原因。这是愚蠢的,但没有记录表明错误:

  
    

batchtest fork =“true” todir =“target / test-reports”

  

batchtest中的fork参数设置为false。将其设置回“true”会产生预期的 jacoco.exec

答案 1 :(得分:1)

单独运行report任务是不够的。您必须配置并运行coverage Ant任务,以便将覆盖数据记录到jacoco.exec文件中。见here

答案 2 :(得分:0)

面对同样的问题,对我而言,我的junit不合适。 跟随链接here