首先需要编写Ant脚本。
1,Build.properties文件如下。
# Cobertura 路径
cobertura.dir=../../cobertura-1.9.4.1
# JUnit 路径
junit.jar=C:/eclipse3.5/eclipse/plugins/org.junit4_4.5.0.v20090824/junit.jar
# hamcrest 路径
hamcrest.jar=C:/eclipse3.5/eclipse/plugins/org.hamcrest.core_1.1.0.v20090501071000.jar
# 源代码路径
src.dir=src
# 测试代码路径,可以多加多个
test.src.dir=test
test.XXXXXXsrc.dir=C:/eclipse3.5/workspaceXXXX/test
# class文件路径
classes.dir=build/classes
# test class路径。
test.classes.dir=build/testClasses
# Cobertura用的copy的目录
instrument.dir=build/instrumentedClasses
# JUnit覆盖率测试报告路径
report.dir=build/reports
# Cobertura测试覆盖率报告路径
coverage.dir=build/coverage
# 使用的jar包
base.lib.dir=lib
webapps.classes.dir=WebContent/WEB-INF/classes
webapps.lib.dir=WebContent/WEB-INF/lib
XXXX.src.dir=..XXXX/src
XXXXX.classes.dir=..XXXX/bin
XXXX.conf.file=C:/eclipse3.5/workspace/XXXX/WebContent/WEB-INF/conf/conf.xml
lib.path.dir=C:/eclipse3.5/workspace/XXXXXX/WebContent/WEB-INF/lib/windows-i586
2,build.xml路径
<?xml version="1.0" encoding="UTF-8"?> <project name="Cobertura Sample" default="coverage-report" basedir="."> <property file="build.properties" /> <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"/> <target name="instrument"> <delete file="cobertura.ser"/> <delete dir="${instrument.dir}" /> <mkdir dir="${instrument.dir}" /> <cobertura-instrument todir="${instrument.dir}"> <fileset dir="${classes.dir}"> <include name="**/*.class"/> </fileset> <fileset dir="${xxx.classes.dir}"> <include name="**/*.class"/> <!-- exclude name="**/*Test.class"/ --> </fileset> </cobertura-instrument> </target> <target name="cover-test" depends="instrument"> <delete dir="${report.dir}" /> <mkdir dir="${report.dir}" /> <junit fork="yes" dir="${basedir}" failureProperty="test.failed"> <classpath location="${junit.jar}" /> <classpath location="${hamcrest.jar}" /> <classpath location="${instrument.dir}" /> <classpath location="${classes.dir}" /> <classpath location="${test.classes.dir}" /> <classpath location="${webapps.classes.dir}" /> <classpath location="${XXXXX.classes.dir}" /> <classpath> <fileset dir="${base.lib.dir}"> <include name="*.jar"/> <!--exclude name="asm-3.3.jar"/--> </fileset> </classpath> <classpath> <fileset dir="${tomcat.lib.dir}"> <include name="*.jar"/> </fileset> </classpath> <classpath> <fileset dir="${webapps.lib.dir}"> <include name="*.jar"/> </fileset> </classpath> <classpath refid="cobertura.classpath" /> <jvmarg value="-Xmx512m"/> <sysproperty key="XXXX.conf" value="${XXXX.conf.file}"/> <sysproperty key="lib.path" value="${lib.path.dir}"/> <formatter type="xml" /> <batchtest todir="${report.dir}"> <fileset dir="${test.src.dir}"> <include name="*.java" /> <include name="/*.java" /> </fileset> <fileset dir="${testXXXX.src.dir}"> <include name=/*.java" /> <exclude name="**/sample/**/*Test.java" /> </fileset> </batchtest> </junit> </target> <target name="coverage-report" depends="cover-test"> <delete dir="${coverage.dir}" /> <mkdir dir="${coverage.dir}" /> <cobertura-report destdir="${coverage.dir}"> <fileset dir="${src.dir}"> <!-- include name="**/*.java"/ --> <include name="/*.java"/> </fileset> <fileset dir="${XXXX.src.dir}"> <include name="*/*.java"/> </fileset> </cobertura-report> </target> </project>