2

我对 Ant 和 Emma 的代码覆盖率插件有疑问,它可以生成报告,但没有源代码。

我的 build.xml 中有以下代码

初始化艾玛

    <taskdef resource="emma_ant.properties" />   
    <path id="run.classpath">  
       <pathelement location="${instr}" />  
       <path  refid="build.classpath"/>  
       <pathelement path="${ant.home}/lib/junit-4.5.jar"/>  
       <pathelement path="${ant.home}/lib/emma.jar"/>  
    </path>

制作说明

    <target name="instr" depends="compile">  
        <emma>  
          <instr instrpathref="build.classpath"  
                 destdir="${instr}"
                 metadatafile="${coverage}/metadata.emma"  
                 merge="true"  
          />  
        </emma>  
    </target>

设置属性

    <jvmarg value="-Demma.coverage.out.file=${coverage}/coverage.emma" />  
    <jvmarg value="-Demma.coverage.out.merge=true" />

做报告

    <emma>  
        <report sourcepath="${src}" >  
            <fileset dir="${coverage}" >  
                <include name="*.emma" />  
            </fileset>  

            <html outfile="${coverage}/coverage.html"/>             
        </report>      
    </emma>

这很好用。它输出到控制台:

 [report] processing input files ...
 [report] 2 file(s) read and merged in 10 ms
 [report] not all instrumented classes were compiled with source file
 [report] debug data: no sources will be embedded in the report.
 [report] line coverage requested in a report of type [html] but
 [report] not all instrumented classes were compiled with line number
 [report] debug data: this column will be removed from the report.
 [report] showing up to 3 classes without full debug info per package:
 [report]   ...
 [report] writing [html] report to [C:\...] ...   

我想在报告中查看我的源代码,我该如何解决?我研究了 emma 的文档,不幸的是没有任何与此问题相关的内容。

谢谢你的回答。

4

1 回答 1

5

好的,我解决了一个问题。

我添加debug="true"到 javac,它现在可以工作了。

于 2009-05-19T22:36:12.863 回答