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