| <?xml version="1.0" standalone='yes'?> |
| <!-- This Ant build file fragment contains targets needed |
| to run unit tests |
| --> |
| |
| <project name="Jackson Unit tests" basedir="."> |
| <!-- Source directories --> |
| <property name="dir.src.test" location="${dir.src}/test" /> |
| <!-- some support for perf testing --> |
| <property name="dir.build.classes.perf" location="${dir.build}/classes/perf" /> |
| <!-- Unit Tests --> |
| <property name="dir.test" location="${basedir}/test" /> |
| <property name="dir.test.classes" location="${dir.test}/classes" /> |
| <property name="dir.test.results" location="${dir.test}/results" /> |
| <property name="dir.test.xmlresults" location="${dir.test.results}/xml" /> |
| |
| <path id="test-libs"> |
| <fileset dir="${dir.lib}"> |
| <!-- for actual unit testing, junit --> |
| <include name="junit/*.jar" /> |
| </fileset> |
| </path> |
| <!-- Libs only needed for tests that check optional interoperability |
| extensions |
| --> |
| <path id="test-libs-ext"> |
| <fileset dir="${dir.lib}"> |
| <!-- For 1.5, need JAXB API jar too (and related) --> |
| <include name="jaxb/*.jar" /> |
| <!-- and some other misc libs for interoperability tests --> |
| <include name="ext/**/*.jar" /> |
| </fileset> |
| </path> |
| |
| <target name="test.prepare"> |
| <!-- make test output directories --> |
| <mkdir dir="${dir.test}" /> |
| <mkdir dir="${dir.test.classes}" /> |
| <mkdir dir="${dir.test.results}" /> |
| <mkdir dir="${dir.test.xmlresults}" /> |
| </target> |
| |
| <!--*********************************************************************--> |
| <!-- Tasks from here down are in support of junit tests. --> |
| <!--*********************************************************************--> |
| <target name="all-tests" depends="test" /> |
| |
| <!-- Compiling and running test cases |
| --> |
| |
| <target name="test.compile" depends="test.prepare, compile.mapper, |
| compile.xc, compile.jaxrs, compile.smile, compile.mrbean"> |
| <javac srcdir="${dir.src.test}" destdir="${dir.test.classes}" |
| source="1.5" target="1.5" |
| debug="true" includeantruntime="false" |
| > |
| <exclude name="org/codehaus/jackson/map/ext/*.java" /> |
| <exclude name="org/codehaus/jackson/map/interop/*.java" /> |
| <include name="**/*.java" /> |
| <classpath> |
| <pathelement path="${dir.build.classes.core}"/> |
| <pathelement path="${dir.build.classes.mapper}"/> |
| <pathelement path="${dir.build.classes.jaxrs}"/> |
| <pathelement path="${dir.build.classes.xc}"/> |
| <pathelement path="${dir.build.classes.smile}"/> |
| <pathelement path="${dir.build.classes.mrbean}"/> |
| <path refid="test-libs"/> |
| <fileset dir="${dir.lib}/jaxrs"> |
| <include name="*.jar" /> |
| </fileset> |
| </classpath> |
| </javac> |
| <javac srcdir="${dir.src.test}" destdir="${dir.test.classes}" |
| source="1.5" target="1.5" |
| debug="true" includeantruntime="false" |
| > |
| <include name="org/codehaus/jackson/map/ext/*.java" /> |
| <include name="org/codehaus/jackson/map/interop/*.java" /> |
| <classpath> |
| <pathelement path="${dir.build.classes.core}"/> |
| <pathelement path="${dir.build.classes.mapper}"/> |
| <path refid="test-libs"/> |
| <path refid="test-libs-ext"/> |
| </classpath> |
| </javac> |
| </target> |
| |
| |
| <target name="test" depends="test.run"> |
| <junitreport todir="${dir.test.results}"> |
| <fileset dir="${dir.test.xmlresults}"> |
| <include name="TEST-*.xml" /> |
| </fileset> |
| <report todir="${dir.test.results}" /> |
| </junitreport> |
| </target> |
| |
| <target name="test.run" depends="test.run.main, |
| test.run.interop, test.run.jaxrs, test.run.failing, test.run.versions" |
| /> |
| <target name="test.run.main" depends="test.compile"> |
| <!-- showoutput 'yes' to allow outputting debug msgs... --> |
| <junit fork="no" printsummary="yes" haltonfailure="no" showoutput="yes"> |
| <batchtest fork="no" todir="${dir.test.xmlresults}"> |
| <fileset dir="${dir.test.classes}"> |
| <!-- Need to exclude inner classes... --> |
| <exclude name="**/*$*.class"/> |
| <!-- and also interop tests, run later on --> |
| <exclude name="org/codehaus/jackson/jaxrs/*.class"/> |
| <exclude name="org/codehaus/jackson/failing/*.class"/> |
| <exclude name="org/codehaus/jackson/map/ext/Test*.class"/> |
| <exclude name="org/codehaus/jackson/map/interop/Test*.class"/> |
| <exclude name="org/codehaus/jackson/version/*.class"/> |
| <include name="**/Test*.class"/> |
| </fileset> |
| </batchtest> |
| <formatter type="xml" /> |
| <classpath> |
| <pathelement path="${dir.build.classes.core}" /> |
| <pathelement path="${dir.build.classes.mapper}" /> |
| <pathelement path="${dir.build.classes.xc}" /> |
| <pathelement path="${dir.build.classes.smile}" /> |
| <pathelement path="${dir.build.classes.mrbean}" /> |
| <pathelement location="${dir.test.classes}" /> |
| <path refid="test-libs"/> |
| </classpath> |
| </junit> |
| </target> |
| |
| <target name="test.run.interop" depends="test.compile"> |
| <!-- for interop tests, yes, we need to fork (classloading issues) --> |
| <junit fork="yes" printsummary="yes" haltonfailure="no" showoutput="yes"> |
| <batchtest fork="no" todir="${dir.test.xmlresults}"> |
| <fileset dir="${dir.test.classes}"> |
| <exclude name="**/*$*.class"/> |
| <!-- 25-Nov-2009, tatu: Argh. Looks like classloading |
| is problematic for this test; works when run |
| separately as single test... but not in sequence |
| --> |
| <exclude name="org/codehaus/jackson/map/interop/TestHibernate.class"/> |
| <include name="org/codehaus/jackson/map/interop/Test*.class"/> |
| </fileset> |
| </batchtest> |
| <formatter type="xml" /> |
| <classpath> |
| <pathelement path="${dir.build.classes.core}" /> |
| <pathelement path="${dir.build.classes.mapper}" /> |
| <pathelement location="${dir.test.classes}" /> |
| <path refid="test-libs"/> |
| <path refid="test-libs-ext"/> |
| </classpath> |
| </junit> |
| </target> |
| |
| <target name="test.run.jaxrs" depends="test.compile"> |
| <!-- And finally, minimal testing for jax-rs too --> |
| <junit fork="yes" printsummary="yes" haltonfailure="no" showoutput="yes"> |
| <batchtest fork="no" todir="${dir.test.xmlresults}"> |
| <fileset dir="${dir.test.classes}"> |
| <exclude name="**/*$*.class"/> |
| <include name="org/codehaus/jackson/jaxrs/*.class"/> |
| </fileset> |
| </batchtest> |
| <formatter type="xml" /> |
| <classpath> |
| <pathelement path="${dir.build.classes.core}" /> |
| <pathelement path="${dir.build.classes.mapper}" /> |
| <pathelement path="${dir.build.classes.jaxrs}" /> |
| <pathelement path="${dir.build.classes.xc}" /> |
| <pathelement location="${dir.test.classes}" /> |
| <path refid="test-libs"/> |
| <fileset dir="${dir.lib}/jaxrs"> |
| <include name="*.jar" /> |
| </fileset> |
| </classpath> |
| </junit> |
| </target> |
| |
| <!-- failing tests run during dev, disabled for maintenance versions --> |
| <target name="test.run.failing" depends="test.compile"> |
| <junit fork="no" printsummary="yes" haltonfailure="no" showoutput="yes"> |
| <batchtest fork="no" todir="${dir.test.xmlresults}"> |
| <fileset dir="${dir.test.classes}"> |
| <exclude name="**/*$*.class"/> |
| <include name="org/codehaus/jackson/failing/Test*.class"/> |
| </fileset> |
| </batchtest> |
| <formatter type="xml" /> |
| <classpath> |
| <pathelement path="${dir.build.classes.core}" /> |
| <pathelement path="${dir.build.classes.mapper}" /> |
| <pathelement path="${dir.build.classes.mrbean}" /> |
| <pathelement path="${dir.build.classes.jaxrs}" /> |
| <pathelement path="${dir.build.classes.xc}" /> |
| <pathelement location="${dir.test.classes}" /> |
| <path refid="test-libs"/> |
| <path refid="test-libs-ext"/> |
| <fileset dir="${dir.lib}/jaxrs"> |
| <include name="*.jar" /> |
| </fileset> |
| </classpath> |
| </junit> |
| </target> |
| |
| <target name="test.run.versions" depends="test.compile"> |
| <junit fork="yes" printsummary="yes" haltonfailure="no" showoutput="yes"> |
| <sysproperty key="FROM_ANT" value="true"/> |
| <batchtest fork="no" todir="${dir.test.xmlresults}"> |
| <fileset dir="${dir.test.classes}"> |
| <include name="org/codehaus/jackson/version/*.class"/> |
| </fileset> |
| </batchtest> |
| <formatter type="xml" /> |
| <classpath> |
| <pathelement path="${dir.build.classes.core}" /> |
| <pathelement path="${dir.build.classes.mapper}" /> |
| <pathelement path="${dir.build.classes.jaxrs}" /> |
| <pathelement path="${dir.build.classes.xc}" /> |
| <pathelement path="${dir.build.classes.mrbean}" /> |
| <pathelement path="${dir.build.classes.smile}" /> |
| <pathelement location="${dir.test.classes}" /> |
| <path refid="test-libs"/> |
| <fileset dir="${dir.lib}/jaxrs"> |
| <include name="*.jar" /> |
| </fileset> |
| </classpath> |
| </junit> |
| </target> |
| |
| <!-- Running a single Unit Test --> |
| <target name="test.single" depends="test.compile"> |
| <fail unless="test" message="Must define -Dtest" /> |
| <!-- showoutput 'yes' to allow outputting debug msgs... --> |
| <!-- 09-Apr-2010, tatu: Looks like we must fork, otherwise there may be |
| issues with junit version? |
| --> |
| <junit fork="yes" maxmemory="128M" showoutput="yes" printsummary="yes"> |
| <sysproperty key="FROM_ANT" value="true"/> |
| <formatter type="plain" usefile="no" /> |
| <test name="${test}" /> |
| <classpath> |
| <pathelement path="${dir.build.classes.core}" /> |
| <pathelement path="${dir.build.classes.mapper}" /> |
| <pathelement path="${dir.build.classes.xc}" /> |
| <pathelement path="${dir.build.classes.jaxrs}" /> |
| <pathelement path="${dir.build.classes.smile}" /> |
| <pathelement path="${dir.build.classes.mrbean}" /> |
| <pathelement location="${dir.test.classes}" /> |
| <path refid="test-libs"/> |
| <path refid="test-libs-ext"/> |
| <fileset dir="${dir.lib}/jaxrs"> |
| <include name="*.jar" /> |
| </fileset> |
| </classpath> |
| </junit> |
| </target> |
| |
| </project> |