我正在使用EMMA工具进行代码覆盖,尽管我付出了最大努力,但EMMA拒绝查看原始.java文件并逐行生成覆盖率。
我们使用ANT来构建代码,并将debug设置为true。我知道EMMA正在测量覆盖率,因为.emma文件似乎正在生成并正确合并。报告能够以百分比呈现高水平的方法覆盖率。
但是为什么它不会看到.java文件?我得到的只是: [在源路径中找不到源文件'a / b / c / d / e / f / code.java]
答案 0 :(得分:6)
您是否在sourcepath
元素中设置了report
?
<report>
<sourcepath>
<pathelement path="${java.src.dir}" />
</sourcepath>
<fileset dir="data">
<include name="*.emma" />
</fileset>
<txt outfile="coverage.txt" />
<html outfile="coverage.html" />
</report>
答案 1 :(得分:2)
您可以发布生成build.xml
报告的EMMA
部分吗?听起来像是report sourcepath
问题。
report sourcepath
应指向您的 java 来源。
请参阅EMMA参考中的sourcepath。这可以是路径式结构,因此您可以包含多个源目录。
与往常一样,ANT:
-verbose
-debug
了解更多信息。答案 2 :(得分:1)
我遇到了同样的问题。但是发现在设置sourcepath时我们需要设置为唯一的目录级别而不是java文件位置。它类似于类路径
答案 3 :(得分:0)
{java.src.dir}
是否需要指向一个特定的src
目录。
这不是一个单独的src目录,因为我正在编译多个项目。每个都有自己的build.xml文件。
我相信这是生成所有报道报告的部分:
<target name="emma.report" if="use.emma">
<emma enabled="true">
<report sourcepath="${test.reports.dir}">
<!-- collect all EMMA data dumps (metadata and runtime): -->
<infileset dir="${test.data.dir}" includes="*.emma" />
<html outfile="${test.reports.dir}/coverage.html" />
</report>
</emma>
</target>
编辑:我将源路径更改为直接指向其中一个src目录。看看是否有效。