【发布时间】:2008-11-17 15:49:33
【问题描述】:
我遇到了 EMMA 问题,它正确地涵盖了我所有的各种 Java 项目,除了一个。 我很困惑为什么会发生这种情况,因为 ANT 脚本似乎是正确的。给出以下预期输出:
[echo] c:\cc_local_home\emmadata\ProjectName
[instr] processing instrumentation path ...
[instr] instrumentation path processed in 1876 ms
[instr] [84 class(es) instrumented, 0 resource(s) copied]
[instr] metadata merged into [c:\cc_local_home\data\2008-11-17_14.35.19\coverage.emma] {in 62 ms}
上面是由下面一段 ANT 脚本生成的:
<target name="emma" depends="init" if="use.emma">
<echo message="${emma.bin}" />
<emma enabled="true">
<instr instrpath="${test.bin}" destdir="${emma.bin}" metadatafile="${test.data.dir}/coverage.emma" merge="true">
<filter excludes="*Test*,*test*" />
<filter excludes="*Exception" />
<filter excludes="*AppConstants" />
</instr>
</emma>
</target>
运行 JUnit 测试后,会记录以下内容。
艾玛报告:
[报告] 处理输入文件 ...
[报告] 16 毫秒内读取和合并 1 个文件
[报告] 无事可做:在任何数据文件中都找不到运行时覆盖率数据
并且没有生成覆盖率报告。
我确定coverage.emma 文件链接正确,为什么EMMA 没有覆盖代码?
emma.report 任务如下所示:
<target name="emma.report" if="use.emma">
<emma enabled="true">
<report sourcepath="${test.reports.dir}">
<infileset dir="${test.data.dir}" includes="*.emma" />
<html outfile="${test.reports.dir}/coverage.html" />
</report>
</emma>
</target>
【问题讨论】:
-
这里有同样的问题。令人困惑的是,两次运行 emma 任务会在第二次生成报告。
标签: java ant junit code-coverage emma