<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>