Home | History | Annotate | Download | only in ant
      1 <project name="testng" default="all" basedir=".">
      2 
      3   <property file="build.properties"/>
      4 
      5   <property name="report.dir" value="${test.output.dir}"/>
      6   <property name="junit.report.dir" value="${report.dir}/test-tmp"/>
      7   <property name="testng.report.dir" value="${report.dir}"/>
      8 
      9   <target name="all" depends="prepare,compile,run,reports,done"/>
     10 
     11   <!-- ==================================================================== -->
     12   <!-- Compile                                                              -->
     13   <!-- ==================================================================== -->
     14   <path id="compile.cp">
     15     <pathelement location="${testng.jar}" />
     16     <fileset dir="${lib.dir}" includes="${guice2.jar}" />
     17     <fileset dir="${lib.dir}" includes="${junit.jar}" />
     18     <fileset dir="${lib.dir}" includes="aopalliance-1.0.jar" />
     19   </path>
     20 
     21   <target name="env:info">
     22     <echo>
     23 BASEDIR          =${basedir}
     24 TEST.DIR         =${test.dir}
     25 TEST.BUILD.DIR   =${test.build.dir}
     26 REPORT.DIR       =${report.dir}
     27 JUNIT.REPORT.DIR =${junit.report.dir}
     28 TESTNG.REPORT.DIR=${testng.report.dir}
     29     </echo>
     30   </target>
     31 
     32   <target name="compile" depends="prepare">
     33     <echo message="                                 -- Compiling tests --"/>
     34 
     35     <property name="build.compiler" value="modern"/>
     36     <javac debug="true"
     37            source="1.7"
     38            classpathref="compile.cp"
     39            srcdir="${test.dir}"
     40            destdir="${test.build.dir}"
     41     />
     42 
     43   </target>
     44 
     45   <target name="prepare">
     46     <tstamp/>
     47     <mkdir dir="${test.build.dir}"/>
     48     <mkdir dir="${junit.report.dir}"/>
     49     <mkdir dir="${testng.report.dir}"/>
     50 
     51   <taskdef name="testng"
     52              classname="org.testng.TestNGAntTask"
     53              classpath="${build.dir}"/>
     54   </target>
     55 
     56 <!--
     57   <property name="cobertura.dir" value="../cobertura-1.9.4.1" />
     58 
     59   <path id="cobertura.classpath">
     60       <fileset dir="${cobertura.dir}">
     61           <include name="cobertura.jar" />
     62           <include name="lib/**/*.jar" />
     63       </fileset>
     64   </path>
     65 -->
     66 
     67   <!-- ==================================================================== -->
     68   <!-- Run                                                             -->
     69   <!-- ==================================================================== -->
     70 
     71   <path id="run.cp">
     72 <!--
     73   	<path location="target/instrumented-classes" />
     74   	<path refid="cobertura.classpath" />
     75 -->
     76     <path refid="compile.cp"/>
     77     <pathelement location="${test.build.dir}"/>
     78   </path>
     79 
     80   <target name="run" description="Run tests" depends="compile,copy-resources">
     81     <echo message="                                 -- Running tests --"/>
     82     <echo message="                                 -- ${testng.jar} --" />
     83     <testng classpathref="run.cp"
     84             outputdir="${testng.report.dir}">
     85       <xmlfileset dir="${test.resources.dir}" includes="testng.xml"/>
     86       <jvmarg value="-Dtest.resources.dir=${test.resources.dir}" />
     87       <jvmarg value="-Dsun.io.serialization.extendedDebugInfo=true" />
     88     </testng>
     89   </target>
     90 
     91   <target name="copy-resources" description="Copies resources.">
     92     <copy verbose="false"
     93           file="${src.resources.dir}/testngtasks"
     94           todir="${build.dir}" />
     95     <copy todir="${build.dir}">
     96       <fileset dir="${src.resources.dir}">
     97         <exclude name="**/.*" />
     98         <exclude name="**/CVS/*" />
     99       </fileset>
    100     </copy>
    101   </target>
    102 
    103   <target name="run:single" description="Run 1 property file named with the ant property test" depends="compile">
    104       <echo message="                                 -- testng-tests-run1 --"/>
    105 
    106     <testng outputdir="${testng.report.dir}"
    107         classpathref="run.cp"
    108         useDefaultListeners="true"
    109         outputDir="${testng.report.dir}">
    110       <xmlfileset dir="${test.resources.dir}" includes="testng-single.xml"/>
    111      </testng>
    112 
    113       <echo>Report created in    open ${testng.report.dir}/index.html</echo>
    114   </target>
    115 
    116   <target name="run:antprop" description="Run a test to see if ant system propertes are passed correctly" depends="compile">
    117       <echo message="                                 -- testng-tests-run-antprop --"/>
    118       <property name="syspropset1" value="value 1"/>
    119       <property name="syspropset2" value="value 2"/>
    120       <propertyset id="propset1">
    121           <propertyref name="syspropset1"/>
    122           <propertyref name="syspropset2"/>
    123       </propertyset>
    124 
    125       <testng outputdir="${testng.report.dir}"
    126               classpathref="run.cp">
    127           <xmlfileset dir="${test.resources.dir}" includes="testng-single3.xml"/>
    128           <propertyset refid="propset1"/>
    129           <sysproperty key="sysprop1" value="value 3"/>
    130       </testng>
    131   </target>
    132 
    133   <!-- ==================================================================== -->
    134   <!-- Run specific configuration                                           -->
    135   <!-- ==================================================================== -->
    136   <target name="run:conf"
    137           if="testng.conf"
    138           depends="clean:reports,compile"
    139           description="Run specified tests">
    140     <echo message="                                 -- testng-tests-run --"/>
    141     <echo message="using: ${testng.conf}.xml"/>
    142 
    143     <testng classpathref="run.cp"
    144             outputDir="${testng.report.dir}">
    145         <xmlfileset dir="${test.resources.dir}" includes="${testng.conf}.xml"/>
    146     </testng>
    147 
    148     <antcall target="clean.tmp"/>
    149   </target>
    150 
    151 
    152   <!-- ==================================================================== -->
    153   <!-- Reports                                                              -->
    154   <!-- ==================================================================== -->
    155 
    156   <target name="reports">
    157     <junitreport todir="${junit.report.dir}">
    158       <fileset dir="${testng.report.dir}">
    159         <include name="*.xml"/>
    160         <exclude name="testng-failed.xml"/>
    161         <exclude name="testng-results.xml" />
    162       </fileset>
    163       <report format="noframes" todir="${junit.report.dir}"/>
    164     </junitreport>
    165   </target>
    166 
    167 
    168   <target name="clean.tmp">
    169       <delete dir="${test.output.dir}"/>
    170   </target>
    171 
    172   <target name="clean:reports">
    173       <delete dir="${report.dir}"/>
    174       <delete dir="${junit.report.dir}"/>
    175   </target>
    176 
    177   <target name="clean" depends="clean.tmp,clean:reports">
    178     <echo message="                                 -- test clean --"/>
    179 
    180     <delete dir="${test.build.dir}"/>
    181   </target>
    182 
    183   <target name="done">
    184     <echo>Reports can be found in:    open ${testng.report.dir}/index.html</echo>
    185   </target>
    186 
    187 </project>
    188