Ant 在hudson中使用emma插件的代码覆盖率

Ant 在hudson中使用emma插件的代码覆盖率,ant,Ant,我能够获取插入指令的类,但找不到运行时覆盖率数据。我使用build.xml(ant)在hudson中获得输出。谁能帮我一下吗…下面是我的build.xml文件 <path id="classpath.test"> <pathelement location="${dir.dest}/test.jar"/> <fileset dir="C:\Program Files\Java\jre7\lib\ext"> <include name="*

我能够获取插入指令的类,但找不到运行时覆盖率数据。我使用
build.xml(ant)
在hudson中获得输出。谁能帮我一下吗…下面是我的build.xml文件

<path id="classpath.test">
    <pathelement location="${dir.dest}/test.jar"/>
<fileset dir="C:\Program Files\Java\jre7\lib\ext">
    <include name="**/*.jar"/>
</fileset>  
</path>     

<path id="emma.lib">
<pathelement location="C:\Program Files\Java\jre7\lib\ext\emma-2.0.5312.jar" />    
<pathelement location="C:\Program Files\Java\jre7\lib\ext\emma_ant-2.0.5312.jar" /> 
</path>     
<taskdef resource="emma_ant.properties" classpathref="emma.lib" />          

<target name="compile" depends="init,prepare" >
<javac classpathref="classpath.test" debug="on"  srcdir="${src.dir}" destdir="${out.dir}" />

<emma enabled="${emma.enabled}" >
<instr instrpathref="run.classpath"  destdir="${out.instr.dir}"  metadatafile="${coverage.dir}/coverage.emma"  merge="true">
    <filter excludes="*Test*"/>
</instr>        
 </emma>
     </target>

     <target name="run" depends="jar">
<java classpathref="classpath.test" classname="MainArea" fork="true"/>
     </target> 

     <target name="junit" depends="run">
    <junit fork="true" haltonfailure="false" printsummary="yes" failureproperty="test.failed">

        <classpath refid="classpath.test"/>
         <classpath>
            <pathelement location="${basedir}/src" />    
             <pathelement location="${out.instr.dir}" />     
             <pathelement location="C:\Program Files\Java\jre7\lib\ext\junit-4.10.jar" />    
             <pathelement location="C:\Program Files\Java\jre7\lib\ext\emma-2.0.5312.jar" />    
             <pathelement location="C:\Program Files\Java\jre7\lib\ext\emma_ant-2.0.5312.jar" />
        </classpath> 
          <formatter type="brief" usefile="false"/>
          <formatter type="xml"/>
        <batchtest todir=".">
            <fileset dir="./workspace">
                <include name = "MainAreaTest.java"/>
            </fileset>
        </batchtest>
        <jvmarg value="-Demma.coverage.out.file=${coverage.dir}/coverage.emma"/>
        <jvmarg value="-Demma.coverage.out.merge=true"/>     

    </junit>

    </target>

   <target name="emma.report"  depends="junit">

   <emma enabled="${emma.enabled}" verbosity="verbose"> 
 <report sourcepath="./workspace" >
 <fileset dir="${coverage.dir}" >
             <include name="*.emma" />
  </fileset> 

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

  </target>
  </project>
艾玛报告:

 [echo] emma   

 [report] [EMMA v2.0, build 5312 (2005/06/12 19:32:43)]

 [report] input data path:
 [report] {
 [report]   C:\Users\.hudson\jobs\Code_Coverage\coverage\coverage.emma
 [report] }
 [report] source path:
 [report] {
 [report]   C:\Users\.hudson\jobs\Code_Coverage\workspace
 [report] }
 [report] processing input file [C:\Users\.hudson\jobs\Code_Coverage\coverage\coverage.emma] ...
 [report]   loaded 7 metadata entries
 [report] 1 file(s) read and merged in 0 ms
 [report] nothing to do: no runtime coverage data found in any of the data files

您还需要包含.ec文件以生成报告

<emma enabled="${emma.enabled}" verbosity="verbose"> 
 <report sourcepath="./workspace" >
   <fileset dir="${coverage.dir}" >
     <include name="*.emma" />
     <include name="*.ec" />
   </fileset> 

   <txt outfile="${coverage.dir}/coverage.txt"/>
   <html outfile="${coverage.dir}/coverage.html"/> 
   <xml outfile="${coverage.dir}/coverage.xml"/>
 </report>


是直接在./WorkStudio中直接维护的吗?谢谢UR的答复。而且是的,MeaReaTestIt只在./WorkStudio中。我需要在仪表类上运行JUnit测试用例的精确代码,这样我就可以得到.EC文件(运行时覆盖数据)……请引导我……我们在部署的中间。测试需要。类文件,不是。java FileInstrumentation不需要Junit testcase,对吗?这就是我排除“Test”(Junit testcase)的原因。我需要在已安装的类(.class文件)上运行Junit…在batchtest中“include name=“MainAreaTest.java”是错误的。这应该指向已编译的junit类。你是对的,你只是测试下的类。
<emma enabled="${emma.enabled}" verbosity="verbose"> 
 <report sourcepath="./workspace" >
   <fileset dir="${coverage.dir}" >
     <include name="*.emma" />
     <include name="*.ec" />
   </fileset> 

   <txt outfile="${coverage.dir}/coverage.txt"/>
   <html outfile="${coverage.dir}/coverage.html"/> 
   <xml outfile="${coverage.dir}/coverage.xml"/>
 </report>