附錄:我個人工程中的ant腳本:
<!--jcoverager report-->
<property name="build.jcoverageReport.dir" value="${build.dir}/JCoverageReport" />
<taskdef resource="tasks.properties" classpathref="appclasspath" />
<!--拷貝資源文件,這里主要是為了下面生成報告方便-->
<target name="jcoverage_init" depends="init">
<mkdir dir="${build.jcoverageReport.dir}/temp_source" />
<copy todir="${build.jcoverageReport.dir}/temp_source">
<fileset dir="${project.src.dir}" />
</copy>
<copy todir="${build.jcoverageReport.dir}/temp_source">
<fileset dir="${project.test_src.dir}" />
</copy>
</target>
<!--編譯資源代碼,由于instrument要求class必須為debug模式編譯的,為了安全這里從新編譯-->
<target name="jcoverage_compile" depends="jcoverage_init">
<mkdir dir="${build.jcoverageReport.dir}/temp_classes" />
<javac srcdir="${build.jcoverageReport.dir}/temp_source"
destdir="${build.jcoverageReport.dir}/temp_classes"
debug="yes">
<include name="**/*.java" />
<classpath refid="classpath" />
</javac>
</target>
<!--instrument在類的二進制文件中注入jcoverage指令;注意:一定是debug模式下編譯的類-->
<target name="jcoverage_instrument" depends="jcoverage_compile">
<mkdir dir="${build.jcoverageReport.dir}/temp_instrument" />
<instrument todir="${build.jcoverageReport.dir}/temp_instrument">
<!-- 忽略org.apache.common的應用 -->
<ignore regex="org.*" />
<fileset dir="${build.jcoverageReport.dir}/temp_classes">
<include name="**/*.class" />
</fileset>
<classpath refid="classpath" />
</instrument>
</target>[iocblog.net 來源]
<!-- 啟動junit,進行代碼覆蓋測試 -->
<target name="jcoverage_junit" depends="jcoverage_instrument">
<mkdir dir="${build.jcoverageReport.dir}/temp_junit" />
<junit printsummary="no" haltonfailure="no" fork="yes">
<formatter type="brief" usefile="false" />
<formatter type="xml" usefile="yes" />
<batchtest todir="${build.jcoverageReport.dir}/temp_junit">
<fileset dir="${build.jcoverageReport.dir}/temp_instrument" includes="**/*Test.class" />
</batchtest>
<classpath>
<pathelement location="${build.jcoverageReport.dir}/temp_instrument" />
<path refid="classpath" />
</classpath>
</junit>
</target>
<!-- 產生代碼覆蓋測試報告 -->
<target name="jcoverage_report" depends="jcoverage_junit">
<report srcdir="${build.jcoverageReport.dir}/temp_source" destdir="${build.jcoverageReport.dir}"/>
</target>
<target name="jcoverage" depends="jcoverage_compile,jcoverage_instrument,jcoverage_report" />
附錄2:JCoverage 報告截圖
包的報告是這樣的,當點擊一個類時,則顯示類中具體的代碼允許情況
具體類中的允許情況,其中黃色為沒有被允許的代碼,(這個截圖中正規方法都沒有被允許)
Good Luck!!!!!!!!!
文章來源于領測軟件測試網 http://www.k11sc111.com/