Author: mbenson Date: Thu Sep 21 12:10:48 2006 New Revision: 448636 URL: http://svn.apache.org/viewvc?view=rev&rev=448636 Log: Restructuring to allow junit and antunit tests both.
Added: ant/core/trunk/src/tests/ ant/core/trunk/src/tests/antunit/ ant/core/trunk/src/tests/junit/ - copied from r448573, ant/core/trunk/src/testcases/ Modified: ant/core/trunk/build.xml Modified: ant/core/trunk/build.xml URL: http://svn.apache.org/viewvc/ant/core/trunk/build.xml?view=diff&rev=448636&r1=448635&r2=448636 ============================================================================== --- ant/core/trunk/build.xml (original) +++ ant/core/trunk/build.xml Thu Sep 21 12:10:48 2006 @@ -19,7 +19,7 @@ <project name="apache-ant" default="main" basedir="."> <!-- Give user a chance to override without editing this file - (and without typing -D each time it compiles it) --> + (and without typing -D on each invocation) --> <property file=".ant.properties"/> <property file="${user.home}/.ant.properties"/> <property environment="env"/> @@ -80,7 +80,8 @@ <property name="lib.dir" value="lib"/> <property name="docs.dir" value="docs"/> <property name="etc.dir" value="${src.dir}/etc"/> - <property name="src.junit" value="${src.dir}/testcases"/> + <property name="src.junit" value="${src.dir}/tests/junit"/> + <property name="src.antunit" value="${src.dir}/tests/antunit"/> <property name="tests.etc.dir" value="${src.dir}/etc/testcases"/> <property name="manifest" value="${src.dir}/etc/manifest"/> <property name="resource.dir" value="${src.dir}/resources"/> @@ -97,8 +98,10 @@ <property name="build.javadocs" value="${build.dir}/javadocs"/> <property name="build.tests" value="${build.dir}/testcases"/> <property name="build.tests.javadocs" value="${build.dir}/javadocs.test/"/> - <property name="build.tests.xml" location="${build.tests}/xml"/> - <property name="build.tests.reports" location="${build.tests}/reports"/> + <property name="build.junit.xml" location="${build.tests}/xml"/> + <property name="antunit.xml" location="${build.dir}/antunit/xml"/> + <property name="antunit.reports" location="${build.dir}/antunit/reports"/> + <property name="build.junit.reports" location="${build.tests}/reports"/> <property name="manifest.tmp" value="${build.dir}/optional.manifest"/> <!-- the absolute path --> <property name="build.tests.value" location="${build.tests}"/> @@ -416,6 +419,9 @@ <available property="junit.present" classname="junit.framework.TestCase" classpathref="classpath"/> + <available property="antunit.present" + classname="org.apache.ant.antunit.AntUnit" + classpathref="classpath"/> <available property="commons.net.present" classname="org.apache.commons.net.ftp.FTPClient" classpathref="classpath"/> @@ -1542,52 +1548,116 @@ Run testcase =================================================================== --> - <target name="test" depends="test-report" description="--> run JUnit tests"> - <fail if="tests.failed">Unit tests failed see ${build.tests.reports}</fail> + + <target name="tests-failed"> + <condition property="tests.failed"> + <or> + <isset property="junit.failed" /> + <isset property="antunit.failed" /> + </or> + </condition> </target> - <target name="test-init" depends="probe-offline"> - <mkdir dir="${build.tests.xml}"/> - <mkdir dir="${build.tests.reports}" /> - - <presetdef name="test-junit"> - <junit printsummary="${junit.summary}" - haltonfailure="${test.haltonfailure}" - fork="${junit.fork}" - forkmode="${junit.forkmode}" - failureproperty="tests.failed" - errorproperty="tests.failed" - filtertrace="${junit.filtertrace}"> - <sysproperty key="ant.home" value="${ant.home}"/> - <sysproperty key="build.tests" file="${build.tests}"/> - <sysproperty key="build.tests.value" value="${build.tests.value}"/> - <sysproperty key="offline" value="${offline}"/> - <sysproperty key="tests-classpath.value" - value="${tests-classpath.value}"/> - <sysproperty key="root" file="${basedir}"/> - <sysproperty key="build.compiler" value="${build.compiler}"/> - <sysproperty key="tests.and.ant.share.classloader" - value="${tests.and.ant.share.classloader}"/> - <classpath refid="tests-classpath"/> - <formatter type="xml"/> - </junit> - </presetdef> + <target name="test" depends="junit-report,antunit-report,tests-failed" + description="--> run unit tests"> + <fail if="tests.failed">Unit tests failed; see ${build.junit.reports} / ${antunit.reports}</fail> + </target> + + <target name="test-init" depends="probe-offline,check_for_optional_packages"> + <macrodef name="test-junit"> + <element name="junit-nested" implicit="true" /> + <sequential> + <mkdir dir="${build.junit.xml}" /> + <junit printsummary="${junit.summary}" + haltonfailure="${test.haltonfailure}" + fork="${junit.fork}" + forkmode="${junit.forkmode}" + failureproperty="junit.failed" + errorproperty="junit.failed" + filtertrace="${junit.filtertrace}"> + <sysproperty key="ant.home" value="${ant.home}"/> + <sysproperty key="build.tests" file="${build.tests}"/> + <sysproperty key="build.tests.value" value="${build.tests.value}"/> + <sysproperty key="offline" value="${offline}"/> + <sysproperty key="tests-classpath.value" + value="${tests-classpath.value}"/> + <sysproperty key="root" file="${basedir}"/> + <sysproperty key="build.compiler" value="${build.compiler}"/> + <sysproperty key="tests.and.ant.share.classloader" + value="${tests.and.ant.share.classloader}"/> + <classpath refid="tests-classpath"/> + <formatter type="xml"/> + <junit-nested /> + </junit> + </sequential> + </macrodef> + + <condition property="antunit.testcase" value="${testcase}"> + <available file="${src.antunit}/${testcase}" /> + </condition> + + <condition property="junit.testcase" value="${testcase}"> + <available classname="${testcase}" classpathref="tests-classpath" /> + </condition> + + <condition property="run.junit"> + <and> + <not><equals arg1="${testcase}" arg2="${antunit.testcase}" /></not> + <isset property="junit.present" /> + <available file="${src.junit}" /> + </and> + </condition> + + <condition property="junit.single"> + <and> + <isset property="junit.testcase" /> + <isset property="run.junit" /> + </and> + </condition> + + <condition property="junit.batch"> + <and> + <not><isset property="junit.testcase" /></not> + <isset property="run.junit" /> + </and> + </condition> + + <condition property="run.antunit"> + <and> + <not><equals arg1="${testcase}" arg2="${junit.testcase}" /></not> + <isset property="antunit.present" /> + <available file="${src.antunit}" /> + </and> + </condition> + + <condition property="run.antunit.report"> + <and> + <isset property="run.antunit" /> + <isset property="trax.impl.present" /> + </and> + </condition> + <condition property="run.junit.report"> + <and> + <isset property="run.junit" /> + <isset property="trax.impl.present" /> + </and> + </condition> </target> -<!--if="run.junitreport"--> - <target name="test-report" depends="test-init,run-tests,run-single-test" - if="trax.impl.present"> - <junitreport todir="${build.tests.reports}"> - <fileset dir="${build.tests.xml}"> + <target name="junit-report" depends="junit-tests,junit-single-test" + if="run.junit.report"> + <mkdir dir="${build.junit.reports}" /> + <junitreport todir="${build.junit.reports}"> + <fileset dir="${build.junit.xml}"> <include name="TEST-*.xml"/> </fileset> - <report format="frames" todir="${build.tests.reports}"/> + <report format="frames" todir="${build.junit.reports}"/> </junitreport> </target> - <target name="run-tests" depends="dump-info,compile-tests,probe-offline,test-init" - if="junit.present" unless="testcase"> + <target name="junit-tests" depends="dump-info,compile-tests,test-init" + if="junit.batch"> <property name="junit.includes" value="**/*Test*" /> <property name="junit.excludes" value="" /> @@ -1595,7 +1665,7 @@ <test-junit> <formatter type="brief" usefile="false"/> - <batchtest todir="${build.tests.xml}"> + <batchtest todir="${build.junit.xml}"> <fileset dir="${src.junit}" includes="${junit.includes}" excludes="${junit.excludes}"> @@ -1736,15 +1806,15 @@ </test-junit> </target> - <target name="run-single-test" if="testcase" depends="compile-tests,run-single-test-only" + <target name="junit-single-test" depends="compile-tests,junit-single-test-only" description="--> runs the single unit test defined in the testcase property"/> - <target name="run-single-test-only" if="testcase" + <target name="junit-single-test-only" if="junit.single" description="--> runs the single unit test defined in the testcase property" depends="test-init"> <test-junit> <formatter type="plain" usefile="false"/> - <test name="${testcase}" todir="${build.tests.xml}"/> + <test name="${junit.testcase}" todir="${build.junit.xml}"/> </test-junit> </target> @@ -1754,6 +1824,41 @@ <java classpathref="tests-classpath" classname="org.apache.tools.ant.taskdefs.TestProcess" fork="true"/> + </target> + + <target name="antunit-tests" depends="dump-info,build,test-init" + if="run.antunit"> + + <condition property="antunit.includes" value="${antunit.testcase}" + else="**/*-test.xml"> + <isset property="${antunit.testcase}" /> + </condition> + + <property name="antunit.excludes" value="" /> + + <mkdir dir="${antunit.xml}" /> + <au:antunit xmlns:au="antlib:org.apache.ant.antunit" + failonerror="false" errorproperty="antunit.failed"> + <fileset dir="${src.antunit}" includes="${antunit.includes}" + excludes="${antunit.excludes}" /> + <au:plainlistener /> + <au:xmllistener todir="${antunit.xml}" /> + </au:antunit> + </target> + + <target name="antunit-report" depends="antunit-tests" if="run.antunit.report"> + <length> + <fileset dir="${antunit.xml}" includes="TEST-*.xml" /> + </length> + <mkdir dir="${antunit.reports}" /> + <junitreport todir="${antunit.reports}"> + <fileset dir="${antunit.xml}" includes="TEST-*.xml" /> + <report styledir="${src.antunit}" format="frames" + todir="${antunit.reports}"/> + </junitreport> + <length> + <fileset dir="${antunit.xml}" includes="TEST-*.xml" /> + </length> </target> <!-- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]