Ant target to automatically download and install TestNG
Jonathan Gibbons
jonathan.gibbons at oracle.com
Thu Aug 23 09:40:21 PDT 2012
Note that the goal is to have jtreg support TestNG tests, Real Soon Now.
-- Jon
On 08/24/2012 10:50 AM, Paul Sandoz wrote:
> Hi,
>
> Below is a simple patch that provides an ant target to automatically download and install TestNG.
>
> I suspect this area will likely change but in the interim i suppose "every little bit helps" for those running the tests for the first time.
>
> Paul.
>
> diff -r 6b67e68ac62e test-ng/README
> --- a/test-ng/README Wed Aug 22 17:38:46 2012 -0700
> +++ b/test-ng/README Fri Aug 24 19:41:33 2012 +0200
> @@ -1,5 +1,12 @@
> -Running the TestNG based unit tests requires downloading the TestNG
> -library and placing its jar file into the lib subdirectory:
> +Running the TestNG based unit tests requires the TestNG library
> +and placing its jar file in the lib subdirectory.
> +
> +This can be achieved by executing the following ant task:
> +
> + # download and install TestNG
> + ant testng-install
> +
> +Or manually as follows:
>
> # download and install TestNG
> wget http://testng.org/testng-6.5.2.zip
> @@ -7,6 +14,10 @@
> mkdir lib
> cp testng-6.5.2/testng-6.5.2.jar lib
>
> +The unzipped hierarchy can be removed.
> +
> +Run the test as follows:
> +
> # run tests
> ant test
>
> diff -r 6b67e68ac62e test-ng/build.xml
> --- a/test-ng/build.xml Wed Aug 22 17:38:46 2012 -0700
> +++ b/test-ng/build.xml Fri Aug 24 19:41:33 2012 +0200
> @@ -10,18 +10,36 @@
> <property name="lambda.metafactory" value="" />
> <property name="generated.dir" value="gen-separate"/>
>
> - <property name="lib.testng.jar" value="${lib.dir}/testng-6.5.2.jar"/>
> + <property name="testng" value="testng-6.5.2"/>
> + <property name="testng.jar" value="${testng}.jar"/>
> + <property name="testng.zip" value="${testng}.zip"/>
> + <property name="lib.testng.jar" value="${lib.dir}/${testng.jar}"/>
> <property name="lib.tools.jar" value="${java.home}/../lib/tools.jar"/>
>
> + <target name="-check-testng-install" unless="testng.library.exists">
> + <available property="testng.library.exists" file="${lib.testng.jar}"/>
> + </target>
> +
> + <target name="testng-install" depends="-check-testng-install" unless="${testng.library.exists}">
> + <mkdir dir="${lib.dir}"/>
> + <get src="http://testng.org/${testng.zip}" dest="${lib.dir}" skipexisting="true"/>
> + <unzip src="${lib.dir}/${testng.zip}" dest="${lib.dir}">
> + <patternset>
> + <include name="${testng}/${testng.jar}"/>
> + </patternset>
> + <mapper type="flatten"/>
> + </unzip>
> + </target>
> +
> <path id="test.class.path">
> <pathelement location="${test.classes.dir}" />
> <pathelement location="${lib.testng.jar}"/>
> <pathelement location="${lib.tools.jar}"/>
> </path>
> -
> - <taskdef name="testng" classpathref="test.class.path" classname="org.testng.TestNGAntTask" />
> -
> +
> <target name="prepare">
> + <taskdef name="testng" classpathref="test.class.path" classname="org.testng.TestNGAntTask"/>
> +
> <mkdir dir="${build.dir}"/>
> <mkdir dir="${test.classes.dir}"/>
> <mkdir dir="${test.reports.dir}"/>
>
More information about the lambda-dev
mailing list