Cobertura - 代码覆盖率仪表

时间:2011-11-20 03:35:03

标签: ant build cobertura

我正在尝试第一次代码覆盖率分析,我正在努力使用ANT获取cobertura。我的问题可能很愚蠢,但想到这里问。我的ANT脚本中有以下内容。通过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>

2 个答案:

答案 0 :(得分:2)

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

这是我第一次通过ant设置cobertura时使用的构建文件:

cobertura-instrument目标检测我的代码并将检测的类写入一个单独的目录,就像你说的那样。

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

                        

<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>

  

  

答案 1 :(得分:0)

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