webwork build.properties,NONE,1.1 build.xml,1.3,1.4

[email protected] Sat, 01 Nov 2003 18:27:35 -0800
Newsgroups gmane.comp.java.open-symphony.cvs
Message-ID <[email protected]>
Update of /cvsroot/opensymphony/webwork
In directory sc8-pr-cvs1:/tmp/cvs-serv17002

Modified Files:
	build.xml 
Added Files:
	build.properties 
Log Message:
Create a test-web webapp that is used for the unit tests.
Added test target to run all testcases
Added clover crap, we now have 29.1% coverage!


--- NEW FILE: build.properties ---
# the url for the test application, used for the web testcases
test.server=http://localhost:8000
test.context=/webwork/tests/

Index: build.xml
===================================================================
RCS file: /cvsroot/opensymphony/webwork/build.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- build.xml	1 Nov 2003 20:01:43 -0000	1.3
+++ build.xml	2 Nov 2003 02:27:33 -0000	1.4
@@ -18,12 +18,110 @@
     <property name="dist.dir" value="${basedir}/dist"/>
     <property file="build.properties"/>
     <available property="javacc.optional.available" classname="org.apache.tools.ant.taskdefs.optional.javacc.JavaCC"/>
+    <available property="junit.available" classname="junit.framework.TestCase"/>
+    <available property="clover.available" classname="org.apache.tools.ant.taskdefs.CloverCompilerAdapter"/>
   </target>
 
   <target name="check-javacc" depends="init" unless="javacc.optional.available">
     <fail message="Ant optional.jar is not available, so cannot run JavaCC task. Please download ant 1.5.3 or later."/>
   </target>
 
+  <target name="junit-check" depends="init" unless="junit.available">
+    <fail message="Cannot run test cases. Please copy lib/build/junit-3.8.1.jar to ${ant.home}/lib"/>
+  </target>
+
+  <target name="clover-check" depends="init" unless="clover.available">
+    <fail message="Cannot run coverage tests. Please copy lib/build/clover-1.2.3.jar to ${ant.home}/lib"/>
+  </target>
+
+  <target name="init-clover" depends="init">
+    <taskdef resource="clovertasks"/>
+    <typedef resource="clovertypes"/>
+    <mkdir dir="clover-db"/>
+    <clover-setup initstring="clover-db/coverage.db">
+    <fileset dir="${src.dir}/main">
+      <exclude name="webwork/examples/**" />
+    </fileset>
+    </clover-setup>
+  </target>
+
+
+  <target name="test-web">
+    <property name="test.classes" value="${build.dir}/result/test-web/WEB-INF/classes"/>
+    <mkdir dir="${test.classes}"/>
+    <javac srcdir="${src.dir}/main" destdir="${test.classes}" debug="on" classpathref="core.class.path" compiler="org.apache.tools.ant.taskdefs.CloverCompilerAdapter"/>
+    <!-- copy all default resources -->
+    <copy todir="${test.classes}">
+      <fileset dir="${src.dir}/main">
+        <include name="**/*.properties"/>
+        <include name="**/*.vm"/>
+        <include name="**/*.xml"/>
+      </fileset>
+    </copy>
+
+    <copy todir="${build.dir}/result/test-web">
+      <fileset dir="${src.dir}/resources/web">
+        <include name="tests/**"/>
+        <include name="template/**"/>
+        <include name="**/*.properties"/>
+        <include name="**/*.vm"/>
+        <include name="**/*.xml"/>
+        <include name="**/*.tld"/>
+      </fileset>
+    </copy>
+
+    <mkdir dir="${build.dir}/result/test-web/WEB-INF/lib"/>
+    <jar jarfile="${build.dir}/result/test-web/WEB-INF/lib/${name}.jar">
+      <fileset dir="${test.classes}">
+        <exclude name="**/examples/**"/>
+        <exclude name="*.properties"/>
+        <exclude name="*.xml"/>
+        <exclude name="**/*.html"/>
+      </fileset>
+    </jar>
+    <copy todir="${build.dir}/result/test-web/WEB-INF/lib" flatten="true">
+      <fileset dir="${lib.dir}">
+        <include name="**/clover*.jar"/>
+        <include name="**/core/**"/>
+        <include name="**/jdom*.jar"/>
+      </fileset>
+    </copy>
+
+    <javac srcdir="${src.dir}/test" destdir="${test.classes}" classpathref="core.class.path" debug="on"/>
+
+  </target>
+
+  <target name="test" depends="clover-check,junit-check,precompile,init-clover,test-web">
+    <taskdef name="junit" classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"/>
+
+    <junit printsummary="withOutAndErr" haltonfailure="no" haltonerror="no" showoutput="true" fork="true">
+      <!-- pass in build.properties settings, so we can pick up the test url from there -->
+      <sysproperty key="test.server" value="${test.server}" />
+      <sysproperty key="test.context" value="${test.context}"/>
+      <classpath>
+        <pathelement location="${test.classes}"/>
+        <path refid="core.class.path"/>
+      </classpath>
+
+      <formatter type="plain"/>
+
+      <batchtest todir="${build.dir}/result/test-web">
+        <fileset dir="${src.dir}/test">
+          <include name="**/*TestCase.java"/>
+        </fileset>
+      </batchtest>
+    </junit>
+  </target>
+
+  <target name="clover.report" depends="clover-check,init-clover">
+    <mkdir dir="${build.dir}/clover"/>
+    <clover-report>
+      <current title="WebWork Coverage Report" outfile="${build.dir}/result/clover">
+        <format type="html"/>
+      </current>
+    </clover-report>
+  </target>
+
   <target name="precompile" depends="check-javacc">
     <javacc target="${src.dir}/main/webwork/expr/Parser.jj" javacchome="${lib.dir}/build"/>
   </target>
@@ -207,6 +305,7 @@
   <target name="clean" depends="init">
     <delete dir="${build.dir}"/>
     <delete dir="${dist.dir}"/>
+    <delete dir="clover-db"/>
     <delete>
       <fileset dir="${src.dir}/main/webwork/expr" includes="**/*.java"/>
     </delete>




-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/