2016-05-31 2 views
1

Вот мой build xml. После запуска целевого «теста покрытия» в командной строке отображается, что тест передан. Затем запускается цель «cobertura.reports». Однако отчет об инструменте покрытия не отображает охват тестированием. Что я должен сделать, чтобы решить проблему. Может ли кто-нибудь объяснить, как правильно настроить testNG и Cobertura в цели Ant?Как настроить Cobertura с testNG в Ant

<project basedir="."> 

    <property name="src.dir" value="${basedir}/src"/> 
    <property name="lib.dir" value="${basedir}/lib"/> 
    <property name="build" value="${basedir}/build"/> 
    <property name="tng.conf.dir" value="${src.dir}/conf"/> 
    <property name="cobertura.dir" value="${lib.dir}/cobertura" /> 
    <property name="coverage-output" value="${basedir}/coverage-output" /> 
    <property name="reports" value="${basedir}/reports" /> 


    <taskdef name="testng" classname="org.testng.TestNGAntTask"> 
     <classpath> 
      <pathelement location="lib/testng-6.8.jar"/> 
     </classpath> 
    </taskdef> 

    <path id="class_path"> 
     <pathelement path="${build}"/> 
     <fileset dir="${lib.dir}"> 
      <include name="**/*.jar"/> 
     </fileset> 
    </path> 

    <path id="cobertura.classpath"> 
     <fileset dir="${cobertura.dir}"> 
      <include name="cobertura-1.9.4.1.jar" /> 
      <include name="log4j-1.2.17.jar"/> 
      <include name="asm-3.1.jar"/> 
      <include name="asm-tree-3.0.jar"/> 
      <include name="jakarta-oro.jar"/> 
      <include name="lib/**/*.jar"/></fileset> 
    </path> 

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


    <!--<cobertura-instrument todir="${instrumented.dir}">--> 
     <!--<ignore regex="org.apache.log4j.*" />--> 
     <!--<fileset dir="${build}">--> 
      <!--<include name="**/*.class" />--> 
      <!--<exclude name="**/*Test.class" />--> 
     <!--</fileset>--> 
    <!--</cobertura-instrument>--> 

    <target name="clean" description="Clear previous build class files"> 
     <delete dir="${build}" quiet="true"></delete> 
     <delete file="cobertura.ser" /> 
     <delete dir="${coverage-output}" quiet="true"></delete> 
     <delete dir="${reports}" quiet="true"></delete> 

     <!--<delete dir="${coverage-output}/" />--> 
    </target> 


    <target name="compile" description="compile java class"> 
     <mkdir dir="${build}"/> 
     <mkdir dir="${coverage-output}"/> 
     <mkdir dir="${reports}"/> 
     <javac srcdir="${src.dir}" destdir="${build}" debug="yes"> 
      <classpath refid="class_path"></classpath> 
     </javac> 

     <copy todir="${build}"> 
      <fileset dir="${src.dir}"> 
       <include name="**/*.xml"/> 
       <include name="**/*.properties"/> 
      </fileset> 
     </copy> 
    </target> 

    <!--<target name="ng-test" description="Check very specific test ng target only">--> 
     <!--<testng classpathref="class_path" groups="test-fl-one">--> 
      <!--<classfileset dir="${build}" includes="**/*Test.class"></classfileset>--> 
     <!--</testng>--> 
    <!--</target>--> 
    <!----> 
    <!--<target name="test-by-xml" description="Check by Testng xml" depends="cobertura" >--> 
     <!--<testng classpathref="class_path" outputdir="${build}" haltonfailure="false">--> 
      <!--<classpath location="${build}"></classpath>--> 
      <!--<xmlfileset dir="${tng.conf.dir}" includes="testng.xml"/>--> 
     <!--</testng>--> 
    <!--</target>--> 

    <target name="cobertura" depends="compile"> 

     <cobertura-instrument todir="${coverage-output}"> 

      <fileset dir="${build}"> 
       <include name="**/*.class" /> 
       <!--<exclude name="test/*.class"/>--> 
      </fileset> 
     </cobertura-instrument> 
    </target> 

    <target name="coverage-test" depends="cobertura"> 
     <testng classpathref="class_path" groups="test-fl-one"> 
      <classfileset dir="${coverage-output}" includes="test/*.class" /> 
     </testng> 
    </target> 

    <target name="cobertura.reports"> 
     <cobertura-report format="html" srcdir="${build}" destdir="${reports}" /> 
    </target> 

</project> 

ответ

0

В строке, где необходимо обеспечить источники для вашего проекта, вы передаете двоичные файлы:

<cobertura-report format="html" srcdir="${build}" destdir="${reports}" />

Что должно быть написано это:

<cobertura-report format="html" srcdir="${src.dir}" destdir="${reports}" />

Подробнее Подробности о задачах cobertura ant можно найти по адресу: https://github.com/cobertura/cobertura/wiki/Ant-Task-Reference.

Смежные вопросы