2011-11-20 70 views
1

我正在尝试一些代码覆盖率分析的第一次,我正在努力使用ANT获取cobertura。我的问题可能很愚蠢,但想到这里问。我的ANT脚本中有以下内容。在通过cobertura阅读时,下一步是仪器。代码覆盖仪器是什么?Cobertura - 代码覆盖仪表

<target name="cobertura" depends="checkstyle"> 
    <property name="cobertura.dir" location="C:\\Softwares- packages\\Corbetura\\cobertura-1.9.4.1" /> 
    <path id ="cobertura.classpath"> 
    <fileset dir="${cobertura.dir}"> 
     <include name="cobertura.jar"/> 
     <include name="lib/**/*.jar"/> 
    </fileset> 
    </path>  
    <taskdef resource="tasks.properties" classpathref="cobertura.classpath"/> 

</target> 

回答

0

我相信你正在寻找“cobertura-instrument”任务。请参阅here

2

cobertura修改您的类文件,以便它可以计算覆盖率。我通常会“测试”一个用于执行测试的jar文件的副本,并使用一个尚未用作工具的副本作为构建工件。

这是我第一次通过蚂蚁设立的Cobertura我的构建文件:

的的Cobertura仪器仪表目标我的代码和像你说的写仪表类单独的目录。

junit目标编译测试,然后测试测试,然后运行测试,然后生成报告。这些步骤都是通过向junit声明相关目标来完成的。

<path id="cobertura.classpath"> 
    <fileset dir="${cobertura.dir}"> 
    <include name="cobertura.jar" /> 
    <include name="lib/**/*.jar" /> 
    </fileset> 
</path> 

<taskdef classpathref="cobertura.classpath" resource="tasks.properties" /> 

<!-- Delete an existing coburtura datafile --> 
<delete file="${cobertura.datafile}"/> 
<antcall target="cobertura.clean"/> 

<!-- Instrument the code with cobertura to test for coverage --> 
<cobertura-instrument todir="${cobertura.instrumented.classes}" datafile="${cobertura.datafile}"> 
    <fileset dir="${build.dir}/classes/"> 
     <include name="**/*.class"/> 
    </fileset> 
</cobertura-instrument> 

<fileset dir="${src.dir}"> 
     <include name="**/*.java" /> 
</fileset> 
<fileset dir="${tests.src.dir}"> 
    <include name="**/*.java" /> 
</fileset> 

+0

非常感谢Eric.Please纠正我,如果我错了。一旦构建完成,corebetura将创建另一个二进制副本并执行单元测试。根据它,它会生成报告。那么我可以告诉instrumentation正在复制二进制文件并执行测试执行吗? – techrawther