2014-03-12 34 views
0
Here is my build.xml. Here all the paths are mentioned. 

在報告中,所有百分比均爲0(ZERO)。 而且它也提示我「你提到了指定的源代碼目錄」在Cobertura報告中,所有百分比均爲0,並且消息即將提供您是否提及過正確的路徑

請提出錯誤在哪裏。 要麼我必須更改build.xml或必須執行一些步驟。 首先,我運行所有的junit測試用例,然後停止服務器,然後運行build.xml作爲ant-build。

<project name="RFM2" default="cobertura_REPORT"> 
    <property name="BASEDIR" value="D:/SIT/busnessservice" /> 
    <property name="cobertura.dir" value="D:/SIT/JUNIT_jars/cobertura-1.9.1" /> 
    <property name="src.dir" value="${BASEDIR}/src" /> 
    <property name="build.dir" value="${BASEDIR}/build" /> 
    <property name="dist.dir" value="${BASEDIR}/dist" /> 
    <property name="lib.dir" value="D:/SIT/JUNIT_jars/jars" /> 
    <property name="report.dir" value="${BASEDIR}/reports" /> 
    <property name="cobertura.ser.file" value="${cobertura.dir}/cobertura.ser" /> 
    <property name="server.ser.file" value="D:/Program Files/cobertura.ser" /> 
    <property name="instrumentedDir" value="${cobertura.dir}/instrument" /> 
    <property name="junit.data.dir" value="${report.dir}/junit/data" /> 
    <property name="junit.report.dir" value="${report.dir}/junit/html" /> 
    <property name="junit.dir" value="D:/SIT/JUNIT_jars/jars" />  
    <property name="test.dir" value="D:/SIT/JUNITTESTFILES" /> 

    <!--class path for cobertula --> 

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

    <!--class path for JUNIT --> 

    <path id="junit.classpath"> 
     <fileset dir="${junit.dir}"> 
      <include name="**/*.jar" /> 
     </fileset> 
     <pathelement location="${junit.dir}/junit-4.1.jar" /> 
     <pathelement location="${BASEDIR}/bin" /> 
     <path refid="cobertura.classpath" /> 
    </path> 

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

    <!-- PATH FOR LIB --> 
    <path id="lib.classpath"> 
     <fileset dir="${lib.dir}" includes="*.jar" /> 
    </path> 


    <path id="runtime.classpath"> 
     <pathelement location="${build.dir}" /> 
     <path refid="lib.classpath" /> 
    </path> 

    <!--Initialization --> 
    <target name="init"> 
     <mkdir dir="${dist.dir}" /> 
    </target> 

    <!-- Clean files--> 
    <target name="clean" description="Remove all generated files."> 
     <delete dir="${build.dir}" /> 
     <delete dir="${dist.dir}" /> 
    </target> 
    <!-- Compile the java file --> 



    <!--Instrument the files --> 
    <target name="cobertura_instrument"> 




    <cobertura-instrument todir="${instrumentedDir}" datafile="${server.ser.file}"> 
      <fileset dir="${lib.dir}"> 
       <include name="businessServices.jar" /> 
      </fileset> 
     </cobertura-instrument> 
     <!-- Copy cobertula.ser file in server--> 

    </target> 

    <!--copy the instrumented file in class file--> 

我已經刪除了這個塊,因爲我認爲它沒有被使用。 但我的報告仍然以零百分比生成。

<!--Make EAR--> 
    <target name="making ear"> 
     <echo>come in making ear</echo> 
     <ear destfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml"> 
      <fileset dir="${build.dir}" includes="*.jar,*.war" /> 
     </ear> 
    </target> 

    <!--Run the JUNIT Test Case--> 

    <target name="runJunitTest"> 
     <junit fork="yes" dir="${test.dir}" failureProperty="test.failed"> 
      <!-- 
      Specify the name of the coverage data file to use. 
      The value specified below is the default. 
     --> 
      <sysproperty key="net.sourceforge.cobertura.datafile" file="${server.ser.file}" /> 
      <classpath location="${instrumentedDir}" /> 
      <classpath refid="junit.classpath" /> 
      <classpath refid="cobertura.dir" /> 
      <formatter type="plain" usefile="false" /> 
      <formatter type="xml"/> 
      <test name="${test.dir}/ColorConfigurationTest" /> 
      <batchtest todir="${report.dir}" unless="testcase"> 
        <fileset dir="${test.dir}"> 
         <include name="**/*Test.java" /> 
        </fileset> 
       </batchtest> 
     </junit> 
    </target> 

    <!--rEPORTING--> 

    <target name="cobertura_REPORT"> 
     <delete dir="${report.dir}" /> 
     <mkdir dir="${report.dir}" /> 
     <cobertura-report srcdir="${src.dir}" format="html" destdir="${report.dir}" datafile="${server.ser.file}"> 
     </cobertura-report> 
    </target> 
</project> 


<!--Make EAR--> 
    <target name="making ear"> 
     <echo>come in making ear</echo> 
     <ear destfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml"> 
      <fileset dir="${build.dir}" includes="*.jar,*.war" /> 
     </ear> 
    </target> 

    <!--Run the JUNIT Test Case--> 

    <target name="runJunitTest"> 
     <junit fork="yes" dir="${test.dir}" failureProperty="test.failed"> 
      <!-- 
      Specify the name of the coverage data file to use. 
      The value specified below is the default. 
     --> 
      <sysproperty key="net.sourceforge.cobertura.datafile" file="${server.ser.file}" /> 
      <classpath location="${instrumentedDir}" /> 
      <classpath refid="junit.classpath" /> 
      <classpath refid="cobertura.dir" /> 
      <formatter type="plain" usefile="false" /> 
      <formatter type="xml"/> 
      <test name="${test.dir}/ColorConfigurationTest" /> 
      <batchtest todir="${report.dir}" unless="testcase"> 
        <fileset dir="${test.dir}"> 
         <include name="**/*Test.java" /> 
        </fileset> 
       </batchtest> 
     </junit> 
    </target> 

回答

0

我注意到一件事情應該很容易糾正 - 這與Cobertura文檔或我的工作副本不匹配。希望這會解決你的問題。

您的JUnit任務參考<classpath refid="cobertura.dir" />但cobertura.dir不是路徑ID,它是指向cobertura目錄的屬性的名稱。 (!IntelliJ IDEA的標記它爲紅色,這引起了我的眼睛)

在我的劇本,我有:

然後我的JUnit任務引用cobertura.classpath像這樣:

<classpath refid="cobertura.classpath" /> 

希望這有助於!

相關問題