<project name="testng" default="dev" basedir="."> | |
<!-- ====================================================================== --> | |
<!-- TestNG build file --> | |
<!-- Created cbeust, April 26th, 2004 --> | |
<!-- ====================================================================== --> | |
<property file="build.properties" /> | |
<property name="optimize" value="false" /> | |
<property name="build.compiler" value="javac1.5" /> | |
<!-- ====================================================================== --> | |
<!-- PREPARE --> | |
<!-- ====================================================================== --> | |
<target name="prepare" | |
description="Performs all preparations required to build."> | |
<tstamp /> | |
<mkdir dir="${build.dir}" /> | |
</target> | |
<!-- ====================================================================== --> | |
<!-- DUMP --> | |
<!-- ====================================================================== --> | |
<target name="dump" description="Dumps all properties." depends="prepare"> | |
<echoproperties /> | |
</target> | |
<!-- ====================================================================== --> | |
<!-- VALIDATE --> | |
<!-- ====================================================================== --> | |
<target name="validate" description="Validates the build environment."> | |
<!-- java greater than 1.5 required to build --> | |
<condition property="requiredJavaVersion"> | |
<or> | |
<equals arg1="${ant.java.version}" arg2="1.5" /> | |
<equals arg1="${ant.java.version}" arg2="1.6" /> | |
</or> | |
</condition> | |
<fail unless="requiredJavaVersion" | |
message="Java version 1.5 required." /> | |
<!-- validate ant version too ... --> | |
</target> | |
<!-- ==================================================================== --> | |
<!-- COPY-RESOURCES --> | |
<!-- ==================================================================== --> | |
<target name="copy-resources" description="Copies resources."> | |
<copy verbose="false" | |
file="src/testng-1.0.dtd" | |
todir="${build.dir}" /> | |
<copy verbose="false" | |
file="src/testngtasks" | |
todir="${build.dir}" /> | |
<copy todir="${build.dir}"> | |
<fileset dir="./resources"> | |
<exclude name="**/.*" /> | |
<exclude name="**/CVS/*" /> | |
</fileset> | |
</copy> | |
</target> | |
<target name="dev" | |
depends="prepare,validate,copy-resources,build,tests" /> | |
<target name="all" | |
depends="prepare,validate,copy-resources,build,dist,tests,test-ant,javadocs,dist" /> | |
<target name="build" depends="compile,dist-bsh" /> | |
<target name="single"> | |
<ant antfile="test/build.xml" target="run:single"/> | |
</target> | |
<!-- ==================================================================== --> | |
<!-- Compile --> | |
<!-- ==================================================================== --> | |
<target name="compile" | |
depends="prepare,copy-resources" | |
description="Compiles sources"> | |
<echo message=" -- Compiling sources --" /> | |
<path id="compile2.cp"> | |
<fileset dir="${lib.dir}"> | |
<include name="junit.jar" /> | |
<include name="${beanshell.jar}" /> | |
<include name="${guice.jar}" /> | |
</fileset> | |
</path> | |
<javac classpathref="compile2.cp" | |
verbose="false" | |
target="1.5" | |
debug="true" | |
optimize="${optimize}" | |
destdir="${build.dir}"> | |
<src path="${src.dir}" /> | |
</javac> | |
</target> | |
<target name="compile:all" depends="compile" /> | |
<target name="examples"> | |
<ant inheritall="no" antfile="examples/build.xml" /> | |
</target> | |
<target name="tests" depends="compile" description="runs all JDK5 tests with JDK5 distro"> | |
<ant inheritall="no" antfile="test/build.xml" /> | |
<!-- | |
<ant inheritall="no" antfile="test/v4/build.xml" /> | |
--> | |
</target> | |
<target name="test-ant"> | |
<echo message=" -- Testing ant testng task functionality --" /> | |
<ant inheritall="no" antfile="test/ant/build.xml" /> | |
</target> | |
<!-- ==================================================================== --> | |
<!-- Documentation --> | |
<!-- ==================================================================== --> | |
<target name="javadocs"> | |
<javadoc additionalparam="-quiet" destdir="javadocs" source="1.5" windowtitle="TestNG" | |
classpath="${testng.jar}:${lib.dir}/ant.jar:${guice.jar}"> | |
<fileset dir="${src.dir}" defaultexcludes="yes"> | |
<include name="org/testng/*.java" /> | |
</fileset> | |
<fileset dir="${src.dir}" defaultexcludes="yes"> | |
<include name="org/testng/xml/Xml*.java" /> | |
</fileset> | |
<fileset dir="${src.dir}" defaultexcludes="yes"> | |
<include name="org/testng/annotations/**" /> | |
</fileset> | |
</javadoc> | |
</target> | |
<!-- ==================================================================== --> | |
<!-- Distribution --> | |
<!-- ==================================================================== --> | |
<target name="dist" depends="maven-plugin,dist-all-zip,dist-maven-bundle,eclipse,dtd" /> | |
<target name="clean-unjar"> | |
<delete quiet="true" dir="${build.3rdparty.dir}" includeemptydirs="true" /> | |
<mkdir dir="${build.3rdparty.dir}" /> | |
</target> | |
<target name="extract-beanshell-jar"> | |
<unjar src="3rdparty/${beanshell.jar}" | |
dest="${build.3rdparty.dir}" | |
overwrite="true" /> | |
</target> | |
<target name="extract-guice-jar"> | |
<unjar src="3rdparty/${guice.jar}" | |
dest="${build.3rdparty.dir}" | |
overwrite="true" /> | |
</target> | |
<target name="dist-bsh" depends="clean-unjar,extract-beanshell-jar,extract-guice-jar" > | |
<delete file="${testng.jar}" /> | |
<jar destfile="${testng.jar}"> | |
<manifest> | |
<attribute name="Main-Class" value="org.testng.TestNG" /> | |
<attribute name="Implementation-Version" value="${testng.version}-${DSTAMP}${TSTAMP}" /> | |
</manifest> | |
<fileset dir="${build.dir}" /> | |
<fileset dir="${build.3rdparty.dir}" /> | |
<fileset file="TESTNG-${testng.version}" /> | |
</jar> | |
</target> | |
<target name="dist-nobsh" depends="clean-unjar,extract-guice-jar" > | |
<delete file="${other.jars.dir}/${testng.nobsh.jar}" /> | |
<jar destfile="${other.jars.dir}/${testng.nobsh.jar}"> | |
<manifest> | |
<attribute name="Main-Class" value="org.testng.TestNG" /> | |
<attribute name="Implementation-Version" value="${testng.version}-${DSTAMP}${TSTAMP}" /> | |
</manifest> | |
<fileset dir="${build.dir}" /> | |
<fileset dir="${build.3rdparty.dir}" /> | |
<fileset file="TESTNG-${testng.version}" /> | |
</jar> | |
</target> | |
<target name="dist-all-zip" depends="dist-prepare,javadocs"> | |
<property name="zip.dir" value="testng-${testng.version}" /> | |
<zip zipfile="${testng.zip}"> | |
<zipfileset prefix="${zip.dir}" dir="${basedir}" includesfile="FILES" /> | |
<zipfileset prefix="${zip.dir}" dir="${basedir}"> | |
<include name="${testng.jar}" /> | |
</zipfileset> | |
<zipfileset dir="${other.jars.dir}" prefix="${zip.dir}/${other.jars.dir}"/> | |
<zipfileset dir="javadocs" prefix="${zip.dir}/javadocs" /> | |
<zipfileset dir="src" prefix="${zip.dir}/src" /> | |
<zipfileset dir="spring" prefix="${zip.dir}/spring" /> | |
<zipfileset dir="doc" prefix="${zip.dir}/doc" /> | |
<zipfileset dir="resources" | |
prefix="${zip.dir}/resources" | |
includes="**/*.css"/> | |
<zipfileset dir="test" | |
prefix="${zip.dir}/test" | |
includes="**/*.properties,**/*.java,build.xml,testng.xml" | |
excludes="test-output/**,report/**" /> | |
<zipfileset dir="3rdparty" | |
prefix="${zip.dir}/3rdparty" | |
includes="${beanshell.jar},${concurrent.jar},${guice.jar}" /> | |
</zip> | |
</target> | |
<target name="dist-maven-bundle" depends="dist-all-zip"> | |
<mkdir dir="${build.maven-bundle.dir}" /> | |
<copy file="bundle-pom.xml" tofile="${build.maven-bundle.dir}/pom.xml" overwrite="true"> | |
<filterchain> | |
<expandproperties/> | |
</filterchain> | |
</copy> | |
<jar destfile="${build.maven-bundle.dir}/${sources.testng.jar}"> | |
<fileset dir="src" /> | |
</jar> | |
<jar destfile="${testng.maven-bundle}"> | |
<fileset file="${build.maven-bundle.dir}/pom.xml" /> | |
<fileset file="${testng.jar}" /> | |
<fileset file="${build.maven-bundle.dir}/${sources.testng.jar}" /> | |
</jar> | |
</target> | |
<target name="dist-prepare" depends="update-readme"> | |
<delete file="{other.jars.dir}/${testng.nobsh.jar}" /> | |
<mkdir dir="${other.jars.dir}" /> | |
</target> | |
<target name="update-readme"> | |
<copy file="README.template" tofile="README" /> | |
<replace file="README" token="${version}" value="${testng.version}" /> | |
<touch file="TESTNG-${testng.version}" /> | |
</target> | |
<target name="eclipse" description="Used by Cedric to build distributions"> | |
<property name="jdk15.jar" | |
value="${testng-eclipse.dir}/lib/testng.jar" /> | |
<delete file="${jdk15.jar}" /> | |
<copy file="${testng.jar}" tofile="${jdk15.jar}" /> | |
</target> | |
<taskdef name="DTDDoc" classname="DTDDoc.DTDDocTask" | |
classpath="lib/DTDDoc.jar"/> | |
<target name="dtd"> | |
<DTDDoc showHiddenTags="false" | |
showFixmeTags="false" | |
sourceDir="src" | |
destDir="dtd" | |
docTitle="TestNG DTD"> | |
<include name="testng-1.0.dtd"/> | |
</DTDDoc> | |
</target> | |
<target name="ftp"> | |
<!-- | |
<ftp action="put" | |
server="beust.com" | |
remotedir="w/testng/test-output" | |
userid="${userid}" | |
password="${password}"> | |
<fileset dir="c:\weblogic\dev\sandbox\cbeust\testng\test\test-output"> | |
<include name="index.html" /> | |
<include name="main.html" /> | |
<include name="toc.html" /> | |
<include name="*egression*" /> | |
</fileset> | |
</ftp> | |
--> | |
<ftp action="put" | |
server="beust.com" | |
remotedir="w/testng" | |
userid="${userid}" | |
password="${password}"> | |
<fileset dir="${root.dir}"> | |
<include name="${testng.zip}" /> | |
<include name="javadocs/**" /> | |
<include name="testng-1.0.dtd" /> | |
</fileset> | |
<fileset dir="${root.dir}/doc"> | |
<include name="*.html" /> | |
</fileset> | |
</ftp> | |
</target> | |
<target name="ftp2"> | |
<ftp action="put" | |
server="beust.com" | |
remotedir="w/testng" | |
userid="${userid}" | |
password="${password}"> | |
<fileset dir="${root.dir}/test"> | |
<include name="test-output/*" /> | |
</fileset> | |
<fileset dir="${root.dir}/test"> | |
<include name="test-report/*" /> | |
</fileset> | |
</ftp> | |
</target> | |
<target name="clean"> | |
<delete dir="${build.dir}" /> | |
<delete dir="${build.maven-bundle.dir}" /> | |
<delete failonerror="false"> | |
<fileset dir="." includes="*.jar,*.zip" /> | |
</delete> | |
<ant antfile="test/build.xml" target="clean" /> | |
<ant dir="examples" target="clean" /> | |
</target> | |
<!-- ==================================================================== --> | |
<!-- Maven1/2 Distribution --> | |
<!-- ==================================================================== --> | |
<target name="maven-plugin"> | |
<jar destfile="maven-testng-plugin-${testng-maven.version}.jar" | |
basedir="./maven/" /> | |
</target> | |
</project> |