有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java EMMA覆盖率工具不显示linebyline覆盖率

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

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

但是为什么它看不到这个世界呢。java文件?我得到的只是: [在sourcepath中找不到源文件'a/b/c/d/e/f/code.java'


共 (4) 个答案

  1. # 1 楼答案

    是否在report元素中设置sourcepath

    <report>
        <sourcepath>
            <pathelement path="${java.src.dir}" />
        </sourcepath>
        <fileset dir="data">
            <include name="*.emma" />
        </fileset>
    
        <txt outfile="coverage.txt" />
        <html outfile="coverage.html" />
    </report>
    
  2. # 2 楼答案

    你能发布你的build.xml中生成EMMA报告的部分吗?听起来像是一个问题

    report sourcepath应该指向您的java源代码

    参见EMMA参考资料中的sourcepath。这可以是一个类似路径的结构,因此可以包含多个源目录

    与往常一样,ANT:

    • 执行尽可能小的构建。带-verbose的xml
    • -debug了解更多信息
  3. # 3 楼答案

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

  4. # 4 楼答案

    {java.src.dir}是否需要指向一个特定的src目录

    这不是一个单一的src目录,因为我正在编译多个项目。每个人都有自己的身材。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>
    

    编辑:我将sourcepath更改为直接指向一个src目录。看看这是否有效