blob: 4b4f842c1ed2c2339ef0961115402aeb2a0603ed [file] [log] [blame]
<?xml version="1.0"?>
<!-- $Id$ -->
<project name="Tapestry Framework JUnit Test Suite" default="run">
<property name="root.dir" value="../"/>
<property file="${root.dir}/config/Version.properties"/>
<property file="${root.dir}/config/build.properties"/>
<property file="${root.dir}/config/common.properties"/>
<property name="framework.src.dir" value="${root.dir}/framework/src"/>
<property name="clover-classes.dir" value=".clover-classes"/>
<property name="clover-db.dir" value=".clover-db"/>
<property name="clover.initstring" location="${clover-db.dir}/clover_db"/>
<property name="clover.report.dir" value="../web/doc/clover"/>
<property name="local.lib.dir" value="lib"/>
<path id="compile-tests.classpath">
<path refid="base.classpath"/>
<pathelement location="${root.lib.dir}/${framework.jar}"/>
</path>
<path id="base.classpath">
<fileset dir="${root.lib.dir}">
<include name="${contrib.jar}"/>
<include name="${ext.dir}/*.jar"/>
<include name="${runtime.dir}/*.jar"/>
</fileset>
<fileset dir="${ext.dist.dir}">
<include name="*.jar"/>
</fileset>
<pathelement location="${jython.dir}/jython.jar"/>
<fileset dir="${root.lib.dir}">
<include name="${j2ee.dir}/*.jar"/>
</fileset>
</path>
<target name="init">
<mkdir dir="${classes.dir}"/>
</target>
<target name="clean">
<delete dir="${classes.dir}" quiet="true"/>
<delete dir="${clover-classes.dir}" quiet="true"/>
<delete dir="${clover-db.dir}" quiet="true"/>
<delete dir=".private" quiet="true"/>
</target>
<target name="compile" depends="init" description="Compile all test classes.">
<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="on" target="1.1" source="1.3">
<classpath refid="compile-tests.classpath"/>
</javac>
</target>
<path id="junit.classpath">
<path location="${classes.dir}"/>
<!-- Add the src directory back in, since package resources needed by
the tests are there. Also, ensure that the local copy
of junit/running/excluded.properties overrides the default
copy in junit.jar -->
<path location="${src.dir}"/>
<path refid="compile-tests.classpath"/>
</path>
<target name="run" depends="compile" description="Run the test suite.">
<java fork="true" classname="junit.textui.TestRunner"
failonerror="false">
<classpath refid="junit.classpath"/>
<arg value="org.apache.tapestry.junit.TapestrySuite"/>
<sysproperty key="org.apache.tapestry.enable-reset-service" value="true"/>
</java>
</target>
<!-- To run just a single test case, specify -Dtestcase=name -->
<target name="junit" depends="compile" description="Run the test suite.">
<junit printsummary="no"
errorProperty="test.failed"
failureProperty="test.failed"
fork="true">
<classpath refid="junit.classpath"/>
<formatter type="xml"/>
<formatter type="brief" usefile="false"/>
<sysproperty key="org.apache.tapestry.enable-reset-service" value="true"/>
<batchtest todir="${classes.dir}" unless="testcase">
<fileset dir="${classes.dir}"
includes="**/Test*.class"
excludes="**/*$$*.class"
/>
</batchtest>
<batchtest todir="${classes.dir}" if="testcase">
<fileset dir="${classes.dir}"
includes="**/${testcase}.class"
/>
</batchtest>
</junit>
<fail if="test.failed">Unit tests failed.</fail>
</target>
<target name="junitreport">
<junitreport todir="${classes.dir}">
<fileset dir="${classes.dir}">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${classes.dir}"/>
</junitreport>
</target>
<target name="gui" depends="compile" description="Run the JUnit GUI.">
<java fork="true" classname="junit.swingui.TestRunner">
<classpath refid="junit.classpath"/>
<arg value="org.apache.tapestry.junit.TapestrySuite"/>
<sysproperty key="org.apache.tapestry.enable-reset-service" value="true"/>
</java>
</target>
<path id="clover.classpath">
<pathelement location="${clover-classes.dir}"/>
<pathelement location="${clover.dir}/lib/clover.jar"/>
<path refid="junit.classpath"/>
</path>
<target name="clover" description="Run the entire Tapestry test suite and construct the Clover report.">
<antcall target="run-clover">
<param name="suite" value="org.apache.tapestry.junit.TapestrySuite"/>
</antcall>
</target>
<target name="fast-clover" description="Run a subset of the Tapestry test suite (excluding mock unit tests), and construct the Clover report.">
<antcall target="run-clover">
<param name="suite" value="org.apache.tapestry.junit.BasicTestSuite"/>
</antcall>
</target>
<target name="run-clover" depends="compile" description="Run tests and construct the Clover report.">
<mkdir dir="${clover-classes.dir}"/>
<mkdir dir="${clover-db.dir}"/>
<property name="build.compiler"
value="org.apache.tools.ant.taskdefs.CloverCompilerAdapter"/>
<javac srcdir="${framework.src.dir}" destdir="${clover-classes.dir}" debug="on" target="1.1">
<classpath refid="base.classpath"/>
</javac>
<echo>Executing suite ${suite} ...</echo>
<echo>Clover Run #1: No logging enabled ...</echo>
<java fork="true" classname="junit.textui.TestRunner"
failonerror="true">
<classpath refid="clover.classpath"/>
<arg value="${suite}"/>
<sysproperty key="org.apache.tapestry.enable-reset-service" value="true"/>
</java>
<echo>Clover Run #2: All logging enabled ...</echo>
<java fork="true" classname="junit.textui.TestRunner"
failonerror="true">
<classpath refid="clover.classpath"/>
<arg value="${suite}"/>
<sysproperty key="log4j.configuration" value="log4j-slow.properties"/>
<sysproperty key="org.apache.tapestry.enable-reset-service" value="true"/>
</java>
<antcall target="clover-report"/>
</target>
<target name="clover-report">
<mkdir dir="${clover.report.dir}"/>
<java
classname="com.cortexeb.tools.clover.reporters.html.HtmlReporter"
fork="true">
<classpath>
<pathelement location="${clover.dir}/lib/clover.jar"/>
<pathelement location="${clover.dir}/lib/velocity.jar"/>
</classpath>
<arg line="--outputdir ${clover.report.dir}"/>
<arg line="--showSrc"/>
<arg line="--initstring ${clover.initstring}"/>
<arg line="--title 'Release ${framework.version}'"/>
</java>
</target>
</project>