5

我正在使用 EMMA 工具进行代码覆盖,尽管我尽了最大努力,但 EMMA 拒绝查看原始 .java 文件并逐行生成覆盖。

我们正在使用 ANT 构建代码,并且 debug 设置为 true。我知道 EMMA 正在测量覆盖率,因为 .emma 文件似乎正在正确生成和合并。这些报告能够以百分比呈现高水平的方法覆盖率。

但是为什么它看不到 .java 文件呢?我得到的是:[在源路径中找不到源文件'a/b/c/d/e/f/code.java']

4

4 回答 4

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>
于 2008-10-31T16:07:33.783 回答
2

您可以发布build.xml生成EMMA报告的部分吗?听起来是个report sourcepath问题。

report sourcepath应该指向你的java源。

请参阅EMMA参考中的源路径。这可以是类似路径的结构,因此您可以包含多个源目录。

与往常一样,使用 ANT:

  • 执行最小的 build.xml-verbose
  • -debug了解更多信息。
于 2008-10-31T16:15:01.800 回答
1

我遇到了同样的问题。但是发现在设置sourcepath时我们需要设置为唯一目录级别而不是java文件位置。它类似于类路径

于 2012-05-03T02:36:37.270 回答
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 目录之一。看看这是否有效。

于 2008-10-31T16:22:28.590 回答