<project name="testng" default="all" basedir="."> <property file="build.properties"/> <property name="report.dir" value="${test.output.dir}"/> <property name="junit.report.dir" value="${report.dir}/test-tmp"/> <property name="testng.report.dir" value="${report.dir}"/> <target name="all" depends="prepare,compile,run,reports,done"/> <!-- ==================================================================== --> <!-- Compile --> <!-- ==================================================================== --> <path id="compile.cp"> <pathelement location="${testng.jar}" /> <fileset dir="${lib.dir}" includes="${guice2.jar}" /> <fileset dir="${lib.dir}" includes="${junit.jar}" /> <fileset dir="${lib.dir}" includes="aopalliance-1.0.jar" /> </path> <target name="env:info"> <echo> BASEDIR =${basedir} TEST.DIR =${test.dir} TEST.BUILD.DIR =${test.build.dir} REPORT.DIR =${report.dir} JUNIT.REPORT.DIR =${junit.report.dir} TESTNG.REPORT.DIR=${testng.report.dir} </echo> </target> <target name="compile" depends="prepare"> <echo message=" -- Compiling tests --"/> <property name="build.compiler" value="modern"/> <javac debug="true" source="1.7" classpathref="compile.cp" srcdir="${test.dir}" destdir="${test.build.dir}" /> </target> <target name="prepare"> <tstamp/> <mkdir dir="${test.build.dir}"/> <mkdir dir="${junit.report.dir}"/> <mkdir dir="${testng.report.dir}"/> <taskdef name="testng" classname="org.testng.TestNGAntTask" classpath="${build.dir}"/> </target> <!-- <property name="cobertura.dir" value="../cobertura-1.9.4.1" /> <path id="cobertura.classpath"> <fileset dir="${cobertura.dir}"> <include name="cobertura.jar" /> <include name="lib/**/*.jar" /> </fileset> </path> --> <!-- ==================================================================== --> <!-- Run --> <!-- ==================================================================== --> <path id="run.cp"> <!-- <path location="target/instrumented-classes" /> <path refid="cobertura.classpath" /> --> <path refid="compile.cp"/> <pathelement location="${test.build.dir}"/> </path> <target name="run" description="Run tests" depends="compile,copy-resources"> <echo message=" -- Running tests --"/> <echo message=" -- ${testng.jar} --" /> <testng classpathref="run.cp" outputdir="${testng.report.dir}"> <xmlfileset dir="${test.resources.dir}" includes="testng.xml"/> <jvmarg value="-Dtest.resources.dir=${test.resources.dir}" /> <jvmarg value="-Dsun.io.serialization.extendedDebugInfo=true" /> </testng> </target> <target name="copy-resources" description="Copies resources."> <copy verbose="false" file="${src.resources.dir}/testngtasks" todir="${build.dir}" /> <copy todir="${build.dir}"> <fileset dir="${src.resources.dir}"> <exclude name="**/.*" /> <exclude name="**/CVS/*" /> </fileset> </copy> </target> <target name="run:single" description="Run 1 property file named with the ant property test" depends="compile"> <echo message=" -- testng-tests-run1 --"/> <testng outputdir="${testng.report.dir}" classpathref="run.cp" useDefaultListeners="true" outputDir="${testng.report.dir}"> <xmlfileset dir="${test.resources.dir}" includes="testng-single.xml"/> </testng> <echo>Report created in open ${testng.report.dir}/index.html</echo> </target> <target name="run:antprop" description="Run a test to see if ant system propertes are passed correctly" depends="compile"> <echo message=" -- testng-tests-run-antprop --"/> <property name="syspropset1" value="value 1"/> <property name="syspropset2" value="value 2"/> <propertyset id="propset1"> <propertyref name="syspropset1"/> <propertyref name="syspropset2"/> </propertyset> <testng outputdir="${testng.report.dir}" classpathref="run.cp"> <xmlfileset dir="${test.resources.dir}" includes="testng-single3.xml"/> <propertyset refid="propset1"/> <sysproperty key="sysprop1" value="value 3"/> </testng> </target> <!-- ==================================================================== --> <!-- Run specific configuration --> <!-- ==================================================================== --> <target name="run:conf" if="testng.conf" depends="clean:reports,compile" description="Run specified tests"> <echo message=" -- testng-tests-run --"/> <echo message="using: ${testng.conf}.xml"/> <testng classpathref="run.cp" outputDir="${testng.report.dir}"> <xmlfileset dir="${test.resources.dir}" includes="${testng.conf}.xml"/> </testng> <antcall target="clean.tmp"/> </target> <!-- ==================================================================== --> <!-- Reports --> <!-- ==================================================================== --> <target name="reports"> <junitreport todir="${junit.report.dir}"> <fileset dir="${testng.report.dir}"> <include name="*.xml"/> <exclude name="testng-failed.xml"/> <exclude name="testng-results.xml" /> </fileset> <report format="noframes" todir="${junit.report.dir}"/> </junitreport> </target> <target name="clean.tmp"> <delete dir="${test.output.dir}"/> </target> <target name="clean:reports"> <delete dir="${report.dir}"/> <delete dir="${junit.report.dir}"/> </target> <target name="clean" depends="clean.tmp,clean:reports"> <echo message=" -- test clean --"/> <delete dir="${test.build.dir}"/> </target> <target name="done"> <echo>Reports can be found in: open ${testng.report.dir}/index.html</echo> </target> </project>