<property name="coverage.dir" value="${basedir}/coverage" /> <property name="out.instr.dir" value="${basedir}/outinstr" /> <property name="emma.enabled" value="true" /> <property name="javac.debug" value="on" /> <!-- path element used by EMMA taskdef below: --> <path id="emma.lib" > <pathelement location="${libs}/emma.jar" /> <pathelement location="${libs}/emma_ant.jar" /> </path> 在Ant脚本中加入EMMA task <!-- this loads <emma> and <emmajava> custom tasks: --> <taskdef resource="emma_ant.properties" classpathref="emma.lib" /> 在编译Task中打开debug选项 <target name="compile"> <mkdir dir="${classes.main}" /> <javac srcdir="${src.main}" destdir="${classes.main}" debug="${javac.debug}"> <classpath refid="classpath.lib" /> </javac> <copy todir="${classes.main}"> <fileset dir="${src.main}" includes="**/*.xml, **/*.vm" /> </copy> </target> instrumentation task <target name="instrument" depends="compile"> <mkdir dir="${out.instr.dir}" /> <mkdir dir="${coverage.dir}" /> <emma enabled="${emma.enabled}" > <instr instrpathref="classpath.main" destdir="${out.instr.dir}" metadatafile="${coverage.dir}/metadata.emma" merge="true" > <filter excludes="com.talent.fw.formula.test.*Test*,com.talent.fw.esb.*Test*,com.talent.fw.message.test.*,com. talent.fw.entityengine.*Test*,com.talent.fw.integration.*Test*,com.talent.fw.security.impl.*Test*,testdomain.*" /> </instr> </emma> </target> JUnit测试 <target name="test" depends="compile, instrument"> <mkdir dir="${reports.junit.data}" /> <mkdir dir="${classes.main}/maps" /> <mkdir dir="${classes.main}/scrīpts" />
<copy todir="${classes.main}/maps"> <fileset dir="${src.main}/maps" /> </copy> <copy todir="${classes.main}/scrīpts"> <fileset dir="${src.main}/scrīpts" /> </copy> <copy todir="${classes.main}"> <fileset dir="${src.main}" includes="*.xml, *.properties, **/*.vm, **/*.dtd" /> </copy>
<rmic classname="com.talent.fw.message.test.RMITestServer" base="${classes.main}"/>
<junit printsummary="yes" haltonfailure="no" failureproperty="tests.failed"> <classpath location="${out.instr.dir}" /> <classpath location="${classes.main}" /> <classpath location="${src.main}" /> <classpath refid="classpath.lib" /> <jvmarg value="-Demma.coverage.out.file=${coverage.dir}/coverage.emma" /> <jvmarg value="-Demma.coverage.out.merge=true" /> <formatter type="xml" /> <batchtest fork="yes" todir="${reports.junit.data}" failureproperty="tests.failed"> <fileset dir="${classes.main}"> <include name="**/*Test.class" /> <exclude name="**/AllTests.class" /> <exclude name="**/Base*Test.class" /> </fileset> </batchtest> </junit> </target> 生成报告并复制到Tomcat的发布目录下 <target name="coverage.report" depends="instrument"> <!-- if enabled, generate coverage report(s): --> <emma enabled="${emma.enabled}" > <report sourcepath="${src.main}" sort="+block,+name,+method,+class" metrics="method:70,block:80,line:80,class:100" > <fileset dir="${coverage.dir}" > <include name="*.emma" /> </fileset>
<!-- <xml ōutfile="${coverage.dir}/coverage.xml" depth="package" /> --> <html ōutfile="${coverage.dir}/coverage.html" depth="method" columns="name,class,method,block,line" /> </report> </emma>
<mkdir dir="${coverage.publish.dir}" /> <copy todir="${coverage.publish.dir}"> <fileset dir="${coverage.dir}"> <include name="**/*.html" /> </fileset> </copy> </target> |