diff options
Diffstat (limited to 'ant')
-rw-r--r-- | ant/build-common.xml | 103 |
1 files changed, 100 insertions, 3 deletions
diff --git a/ant/build-common.xml b/ant/build-common.xml index 9df5eb1..573ba31 100644 --- a/ant/build-common.xml +++ b/ant/build-common.xml @@ -3,9 +3,15 @@ xmlns:artifact="antlib:org.apache.maven.artifact.ant"> <property name="src.dir" value="src" /> + <property name="test.dir" value="tst" /> + + <property name="output.dir" value="build" /> + <property name="build.dir" value="${output.dir}/root" /> + <property name="output.testreport" value="${output.dir}/testreport" /> + <property name="output.coveragereport" value="${output.dir}/coverage" /> - <property name="build.dir" value="build" /> <property name="build.classes" value="classes" /> + <property name="build.tests" value="tests" /> <property name="lib.dir" value="lib" /> <property name="java.target.version" value="1.7" /> @@ -21,17 +27,27 @@ <path refid="classpath.build" /> <path location="${build.dir}/${build.classes}" /> </path> + <path id="classpath.test"> + <path refid="classpath.run" /> + <path location="${build.dir}/${build.tests}" /> + </path> + + <taskdef classpathref="classpath.test" resource="tasks.properties" /> <!-- Building/Running Targets --> <!-- Create the build directories --> <target name="prepare"> + <mkdir dir="${output.dir}" /> <mkdir dir="${build.dir}" /> + <mkdir dir="${output.testreport}" /> + <mkdir dir="${output.coveragereport}" /> <mkdir dir="${lib.dir}" /> <mkdir dir="${build.dir}/${build.classes}" /> + <mkdir dir="${build.dir}/${build.tests}" /> </target> - <target name="build" depends="resolve,compile" description="Compile Project"/> + <target name="build" depends="resolve,compile,test" description="Compile Project"/> <target name="compile" depends="prepare"> <javac srcdir="${src.dir}" @@ -48,8 +64,89 @@ </copy> </target> + <target name="compile-tests" depends="compile"> + <javac srcdir="${test.dir}" + destdir="${build.dir}/${build.tests}" + debug="${compile.debug}" + deprecation="${compile.deprecation}" + optimize="${compile.optimize}" + source="${java.target.version}" + target="${java.target.version}" + classpathref="classpath.test" /> + + <copy todir="${build.dir}/${build.tests}"> + <fileset dir="${test.dir}" excludes="**/*.java,**/*.swp"/> + </copy> + </target> + + <target name="test" depends="compile-tests"> + <junit printsummary="on" + fork="on" + dir="${build.dir}" + failureproperty="tests.failed" + showoutput="true"> + + <classpath> + <path refid="classpath.test" /> + </classpath> + + <formatter type="xml"/> + + <batchtest todir="${output.testreport}"> + <fileset dir="${test.dir}"> + <include name="**/*Test.java" /> + </fileset> + </batchtest> + </junit> + + <junitreport todir="${output.testreport}"> + <fileset dir="${output.testreport}" includes="*.xml" /> + <report todir="${output.testreport}" /> + </junitreport> + + <fail message="TEST FAILURE" if="tests.failed" /> + </target> + + <target name="coverage" depends="compile-tests"> + <cobertura-instrument todir="${output.coveragereport}" + datafile="${output.coveragereport}/cobertura.ser"> + <fileset dir="${build.dir}/${build.classes}"> + <include name="**/*.class" /> + </fileset> + </cobertura-instrument> + + <junit printsummary="on" + fork="on" + dir="${build.dir}" + haltonfailure="true"> + + <jvmarg value="-XX:-UseSplitVerifier" /> + + <sysproperty key="net.sourceforge.cobertura.datafile" + file="${output.coveragereport}/cobertura.ser" /> + + <classpath> + <path location="${output.coveragereport}" /> + <path refid="classpath.test" /> + </classpath> + + <formatter type="xml"/> + + <batchtest todir="${output.coveragereport}"> + <fileset dir="${test.dir}"> + <include name="**/*Test.java" /> + </fileset> + </batchtest> + </junit> + + <cobertura-report format="html" + datafile="${output.coveragereport}/cobertura.ser" + destdir="${output.coveragereport}" + srcdir="${src.dir}" /> + </target> + <target name="run" depends="build" description="Run ${main.class}"> - <java classpathref="run.classpath" classname="${main.class}" /> + <java classpathref="classpath.run" classname="${main.class}" /> </target> <target name="clean" description="Clean Project"> |