8

我将我的 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我在任务执行期间没有任何错误。

测试:[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

构建失败/home/usr/Workspaces/my_project/build.xml:73:无法读取执行数据文件/home/usr/Workspaces/my_project/target/jacoco.exec

总时间:14秒

好像我错过了什么,无法看到究竟是什么。

4

3 回答 3

11

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

batchtest fork="true" todir="target/test-reports"

在批处理测试中,fork 参数设置为 false。将其设置回“true”会产生预期的jacoco.exec

于 2013-04-04T13:10:25.067 回答
1

单独运行report任务是不够的。您必须配置并运行coverageAnt 任务,以使覆盖数据能够记录到jacoco.exec文件中。看这里

于 2013-04-04T10:05:52.917 回答
0

面临同样的问题,对我来说,我的 junit 不合适。请点击此处的链接

于 2020-06-12T19:26:01.993 回答