You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
468 lines
17 KiB
468 lines
17 KiB
<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>
|