ant集成junit自动测试的build.xml标准模板
lgl669
2009-07-06
利用Ant集成Junit自动测试并生成测试报告,可以极大的提高测试的工作效率,其优势只要是测试用例的批量处理功能。前不久在网上看到很多关于Junit测试的文章,欣闻Ant支持Junit的集成,迫不及待的尝试了一番。 1. 的配置:ant 本案例采用apache-ant-1.6.5版本,下载ant后需要将Junit3.8.1拷贝到ANT_HOME的lib目录下。Ant在执行过程TestCase过程中除了需要在classpath中可见,还需要在ant中可见,否则会报错。 2. 目录结构: 工作目录 |-src-|—com-|—wallace-|-Calculator.java |-test-|-TestCalculator.java |-lib-|-junit.jar |-build |-report 3. 模板:build.xml <?xml version="1.0" encoding="utf-8"?> <project name="test" default="test" basedir="."> <!--配置基本属性--> <property name="src" value="src"/> <property name="build" value="build"/> <property name="lib" value="lib" /> <property name="dist" value="dist"/> <property name="classpath" location="${build}"/> <!--配置测试报告的属性--> <property name="report" value="report"/> <property name="report.xml" value="${report}/junit/xml"/> <property name="report.html" value="${report}/junit/html"/> <!--配置运行时classpath--> <path id="classpath.run"> <pathelement path="${classpath}"/> <fileset dir="${lib}"> <include name="*.jar"/> </fileset> </path> <!--配置测试时classpath--> <path id="classpath.test"> <path refid="classpath.run"/> <path location="${dist}/lib/test-${DSTAMP}.jar"/> </path> <!--任务初始化--> <target name="init" > <tstamp/> <delete dir="${build}"/> <delete dir="${report}"/> <delete dir="${dist}"/> <mkdir dir="${build}"/> </target> <!--配置编译任务--> <target name="compile" depends="init"> <javac srcdir="${src}" destdir="${build}"> <classpath refid="classpath.run" /> </javac> </target> <!--配置打包任务--> <target name="dist" depends="compile"> <mkdir dir="${dist}/lib"/> <jar jarfile="${dist}/lib/test-${DSTAMP}.jar" basedir="${build}"/> </target> <!--配置运行任务--> <target name="run" depends="compile, dist"> <java classname="com.test.TestCalculator"> <classpath> <path refid="classpath.run"/> </classpath> </java> </target> <!--配置JUnit测试,打印测试结果--> <target name="test" depends="compile, dist"> <mkdir dir="${report.xml}"/> <mkdir dir="${report.html}"/> <junit printsummary="yes" haltonfailure="no"> <classpath refid="classpath.run"/> <formatter type="xml"/> <batchtest fork="yes" todir="${report.xml}"> <fileset dir="${src}" includes="**/Test*.java"/> </batchtest> </junit> <junitreport todir="${report.html}"> <fileset dir="${report.xml}"> <include name="*.xml"/> </fileset> <report format="frames" todir="${report.html}"/> </junitreport> </target> </project> |