| <project name="testng" default="dev" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant"> |
| |
| <!-- ====================================================================== --> |
| <!-- TestNG build file --> |
| <!-- Created cbeust, April 26th, 2004 --> |
| <!-- ====================================================================== --> |
| |
| <property file="build.properties" /> |
| <property name="optimize" value="false" /> |
| |
| <!-- ====================================================================== --> |
| <!-- PREPARE --> |
| <!-- ====================================================================== --> |
| <target name="prepare" depends="retrieve-dependencies" |
| description="Performs all preparations required to build."> |
| <tstamp /> |
| <mkdir dir="${build.dir}" /> |
| <mkdir dir="${other.jars.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.6 required to build --> |
| <condition property="requiredJavaVersion"> |
| <or> |
| <equals arg1="${ant.java.version}" arg2="1.9" /> |
| <equals arg1="${ant.java.version}" arg2="1.8" /> |
| <equals arg1="${ant.java.version}" arg2="1.7" /> |
| </or> |
| </condition> |
| <fail unless="requiredJavaVersion" |
| message="Java version 1.7 required." /> |
| <!-- validate ant version too ... --> |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- COPY-RESOURCES --> |
| <!-- ==================================================================== --> |
| |
| <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="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="prepare,compile,testng-jar-all" /> |
| |
| <target name="testng-jar-all"> |
| <antcall target="create-jar"> |
| <param name="jar.file" value="${testng.jar}" /> |
| </antcall> |
| <jar jarfile="${testng.jar}" update="true"> |
| <zipfileset src="${lib.dir}/${beanshell.jar}" /> |
| <zipfileset src="${lib.dir}/${jcommander.jar}" /> |
| <zipfileset src="${lib.dir}/${yaml.jar}" /> |
| </jar> |
| |
| </target> |
| |
| <target name="single"> |
| <ant antfile="build-tests.xml" target="run:single"/> |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- Compile --> |
| <!-- ==================================================================== --> |
| |
| <path id="compile2.cp"> |
| <fileset dir="${lib.dir}" includes="${all.jar.files}" /> |
| </path> |
| |
| <target name="compile" |
| depends="prepare,copy-resources" |
| description="Compiles sources"> |
| <echo message=" -- Compiling sources --" /> |
| |
| <echo>Src:${src.dir}</echo> |
| <javac classpathref="compile2.cp" |
| verbose="false" |
| target="1.7" |
| 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="build" description="runs all JDK5 tests with JDK5 distro"> |
| <ant inheritall="no" antfile="build-tests.xml" /> |
| </target> |
| |
| <target name="test-ant" depends="build"> |
| <echo message=" -- Testing ant testng task functionality --" /> |
| <ant inheritall="no" antfile="build-ant.xml" /> |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- Documentation --> |
| <!-- ==================================================================== --> |
| |
| <target name="javadocs" depends="build,javadocs-current" /> |
| |
| <target name="doclava"> |
| <javadoc |
| docletpath="3rdparty/doclava-1.0.3.jar" |
| bootclasspath="${javahome}/jre/lib/rt.jar" |
| classpath="${testng.jar}:lib/${ant.jar}:lib/${guice2.jar}:lib/aopalliance-1.0.jar" |
| maxmemory="2048M" |
| additionalparam="-quiet" |
| verbose="false" |
| destdir="javadocs" |
| > |
| <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> |
| <doclet name="com.google.doclava.Doclava"> |
| <param name="-stubs" value="build/stubs" /> |
| <param name="-hdf"/> |
| <param name="project.name" value="TestNG" /> |
| <!-- versioning --> |
| <param name="-since"/> |
| <param name="doclava/previous.xml"/> |
| <param name="v1" /> |
| <param name="-apiversion" value="v2"/> |
| <!-- federation --> |
| <param name="-federate" /> |
| <param name="JDK"/> |
| <param name="http://download.oracle.com/javase/6/docs/api/index.html?"/> |
| <param name="-federationxml"/><param name="JDK"/> |
| <param name="http://doclava.googlecode.com/svn/static/api/openjdk-6.xml"/> |
| </doclet> |
| </javadoc> |
| </target> |
| |
| <target name="javadocs-current"> |
| <javadoc additionalparam="-quiet" destdir="javadocs" source="1.7" windowtitle="TestNG" |
| classpath="${testng.jar}" classpathref="compile2.cp" verbose="false"> |
| <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="build,all-jar-flavors,dist-all-zip,eclipse" /> |
| |
| <target name="all-jar-flavors" depends="dist-junit,dist-nobsh-guice,dist-bsh-noguice,dist-nobsh-noguice,dist-testng-dist,dist-testng-javadoc" /> |
| |
| <target name="dist-junit"> |
| <antcall target="create-jar"> |
| <param name="jar.file" value="${other.jars.dir}/${testng.junit.jar}" /> |
| </antcall> |
| <jar jarfile="${other.jars.dir}/${testng.junit.jar}" update="true"> |
| <zipfileset src="${lib.dir}/${beanshell.jar}" /> |
| <zipfileset src="${lib.dir}/${jcommander.jar}" /> |
| <zipfileset src="${lib.dir}/${junit.jar}" /> |
| <zipfileset src="${lib.dir}/${yaml.jar}" /> |
| </jar> |
| </target> |
| |
| <target name="dist-nobsh-guice"> |
| <antcall target="create-jar"> |
| <param name="jar.file" value="${other.jars.dir}/${testng.nobsh.guice.jar}" /> |
| </antcall> |
| <jar jarfile="${other.jars.dir}/${testng.nobsh.guice.jar}" update="true"> |
| <zipfileset src="${lib.dir}/${guice2.jar}" /> |
| <zipfileset src="${lib.dir}/${jcommander.jar}" /> |
| <zipfileset src="${lib.dir}/${junit.jar}" /> |
| </jar> |
| </target> |
| |
| <target name="dist-bsh-noguice"> |
| <antcall target="create-jar"> |
| <param name="jar.file" value="${other.jars.dir}/${testng.bsh.noguice.jar}" /> |
| </antcall> |
| <jar jarfile="${other.jars.dir}/${testng.bsh.noguice.jar}" update="true"> |
| <zipfileset src="${lib.dir}/${beanshell.jar}" /> |
| <zipfileset src="${lib.dir}/${jcommander.jar}" /> |
| <zipfileset src="${lib.dir}/${junit.jar}" /> |
| </jar> |
| </target> |
| |
| <target name="dist-nobsh-noguice"> |
| <antcall target="create-jar"> |
| <param name="jar.file" value="${other.jars.dir}/${testng.nobsh.noguice.jar}" /> |
| </antcall> |
| <jar jarfile="${other.jars.dir}/${testng.bsh.noguice.jar}" update="true"> |
| <zipfileset src="${lib.dir}/${jcommander.jar}" /> |
| <zipfileset src="${lib.dir}/${junit.jar}" /> |
| </jar> |
| </target> |
| |
| <target name="dist-testng-dist"> |
| <antcall target="create-jar"> |
| <param name="jar.file" value="${other.jars.dir}/${testng.dist.jar}" /> |
| </antcall> |
| <jar jarfile="${other.jars.dir}/${testng.dist.jar}" update="true"> |
| <zipfileset src="${lib.dir}/${jcommander.jar}" /> |
| </jar> |
| </target> |
| |
| <target name="dist-testng-javadoc" depends="javadocs"> |
| <zip destfile="${other.jars.dir}/${testng.javadoc.zip}"> |
| <fileset dir="javadocs"/> |
| </zip> |
| </target> |
| |
| <target name="create-jar" description="Create a jar file with the Testng classes and nothing else" |
| depends="compile"> |
| <delete file="${jar.file}" /> |
| <jar destfile="${jar.file}" > |
| <manifest> |
| <attribute name="Main-Class" value="org.testng.TestNG" /> |
| <attribute name="Implementation-Version" value="${testng.version}-${DSTAMP}${TSTAMP}" /> |
| </manifest> |
| <fileset dir="${build.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}" /> |
| <echo>Adding ${testng.fullname}</echo> |
| <zip zipfile="${testng.zip}"> |
| <zipfileset prefix="${zip.dir}" dir="${target}"> |
| <include name="${testng.fullname}.jar" /> |
| </zipfileset> |
| <zipfileset prefix="${zip.dir}" dir="${basedir}" includesfile="FILES" /> |
| <zipfileset dir="${other.jars.dir}" prefix="${zip.dir}/other-jars"/> |
| <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="${src.resources.dir}" |
| prefix="${zip.dir}/resources" |
| includes="**/*.css"/> |
| </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.dir}" /> |
| </jar> |
| |
| <exec executable="gpg"> |
| <arg value="- -yes" /> |
| <arg value="-ab" /> |
| <arg value="${testng.jar}" /> |
| </exec> |
| |
| <exec executable="gpg"> |
| <arg value="- -yes" /> |
| <arg value="-ab" /> |
| <arg value="${build.maven-bundle.dir}/pom.xml" /> |
| </exec> |
| |
| <exec executable="gpg"> |
| <arg value="- -yes" /> |
| <arg value="-ab" /> |
| <arg value="${build.maven-bundle.dir}/${sources.testng.jar}" /> |
| </exec> |
| |
| <jar destfile="${testng.maven-bundle}"> |
| <fileset file="${build.maven-bundle.dir}/pom.xml" /> |
| <fileset file="${build.maven-bundle.dir}/${sources.testng.jar}" /> |
| <fileset file="${build.maven-bundle.dir}/*asc" /> |
| <fileset file="${testng.jar}" /> |
| <fileset file="${testng.jar}.asc" /> |
| </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.md" /> |
| <replace file="README.md" 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}" /> |
| |
| <!-- sources --> |
| <property name="sources" value="${testng-eclipse.dir}/lib/testng-sources.jar"/> |
| <echo>Sources: ${sources}</echo> |
| <jar destfile="${sources}" basedir="src/main/java/" /> |
| </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="${target}" /> |
| <delete dir="${build.maven-bundle.dir}" /> |
| <delete failonerror="false"> |
| <fileset dir="." includes="testng*.jar,*.zip" /> |
| </delete> |
| <delete dir="test-output" failonerror="false" /> |
| <delete dir="test-output-tests" failonerror="false" /> |
| <ant antfile="build-tests.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> |
| --> |
| |
| <!-- ==================================================================== --> |
| <!-- Ivy --> |
| <!-- ==================================================================== --> |
| |
| <target name="retrieve-dependencies" description="Retrieve dependencies with ivy"> |
| <ivy:retrieve log="quiet" /> |
| </target> |
| |
| <target name="publish"> |
| <ivy:resolve /> |
| <mkdir dir="dist/jars" /> |
| <copy file="${testng.jar}" todir="dist/jars" /> |
| <ivy:publish organisation="org.testng" resolver="local" overwrite="true"/> |
| </target> |
| |
| <target name="pom"> |
| <ivy:makepom ivyfile="ivy.xml" pomfile="ivy-pom.xml" /> |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- Code coverage --> |
| <!-- ==================================================================== --> |
| |
| <!-- |
| <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> |
| |
| <taskdef classpathref="cobertura.classpath" resource="tasks.properties" /> |
| |
| <target name="coverage:create"> |
| <cobertura-instrument classpath="cobertura-1.9.4.1/lib/*" todir="target/instrumented-classes"> |
| <fileset dir="${build.dir}"> |
| <include name="**/*.class" /> |
| </fileset> |
| </cobertura-instrument> |
| </target> |
| |
| <target name="coverage"> |
| <cobertura-report srcdir="${src.dir}" destdir="target/coverage-report"/> |
| </target> |
| --> |
| |
| </project> |