[Red5commits] [1031] added ant tasks for running junit tests and generating junit test report files(
marijanm
luke at codegent.com
Sun Jun 25 11:20:17 EDT 2006
added ant tasks for running junit tests and generating junit test report files( output goes to doc/test directory).
NOTE: junit.jar must be within ant classpath to be able to run it
Timestamp: 06/26/06 01:11:36 (less than one hour ago)
Change: 1031
Author: marijanm
Files (see diff or trac for details):
java/server/trunk/build.xml
Trac: http://mirror1.cvsdude.com/trac/osflash/red5/changeset/1031
Index: /java/server/trunk/build.xml
===================================================================
--- /java/server/trunk/build.xml (revision 1031)
+++ /java/server/trunk/build.xml (revision 1031)
@@ -0,0 +1,313 @@
+<?xml version="1.0"?>
+<project name="RED5" basedir="." default="all">
+
+ <!-- project properties -->
+
+ <property environment="env"/>
+
+ <property name="java.home" value="${env.JAVA_HOME}"/>
+ <property name="java.target_version" value="1.5"/>
+
+ <property name="src.dir" value="src"/>
+ <property name="bin.dir" value="bin"/>
+ <property name="dist.dir" value="dist"/>
+ <property name="lib.dir" value="lib"/>
+ <property name="classes.dir" value="bin"/>
+ <property name="debug.state" value="true"/>
+ <property name="config.dir" value="conf"/>
+ <property name="javadoc.dir" value="doc/api"/>
+ <!-- JUNIT TESTING -->
+ <property name="test.dir" value="test"/>
+ <property name="testclass.dir" value="bin/testcases"/>
+ <property name="testreports.dir" value="${testclass.dir}/testreports"/>
+ <property name="testdoc.dir" value="doc/test"/>
+ <target name="-junit.check">
+ <available property="junit.installed" classname="junit.framework.TestCase" />
+ </target>
+
+ <path id="project.classpath">
+ <fileset dir="${lib.dir}">
+ <include name="*.jar"/>
+ </fileset>
+ </path>
+
+ <path id="full.classpath">
+ <fileset dir="${lib.dir}">
+ <include name="*.jar"/>
+ </fileset>
+ <fileset dir="./">
+ <include name="red5.jar"/>
+ </fileset>
+ </path>
+
+ <echo>java.home is ${java.home} and the target version is ${java.target_version}</echo>
+
+
+ <!-- setup the directories for building -->
+
+ <target name="prepare">
+ <mkdir dir="${classes.dir}"/>
+ <mkdir dir="${bin.dir}"/>
+ <mkdir dir="${dist.dir}"/>
+ <mkdir dir="${testclass.dir}"/>
+ <mkdir dir="${testreports.dir}"/>
+ </target>
+
+ <!-- do a clean -->
+
+ <target name="clean">
+ <delete dir="${classes.dir}"/>
+ <delete dir="${bin.dir}"/>
+ <delete dir="${dist.dir}"/>
+ <delete dir="${javadoc.dir}"/>
+ <delete dir="${testdoc.dir}"/>
+ </target>
+
+ <target name="compile" depends="-junit.check, prepare">
+ <javac
+ sourcepath=""
+ srcdir="${src.dir}"
+ destdir="${classes.dir}"
+ debug="${debug.state}"
+ classpathref="project.classpath"
+ fork="yes"
+ verbose="no"
+ nowarn="yes"
+ executable="${java.home}/../bin/javac"
+ target="${java.target_version}">
+
+ </javac>
+
+ <javac
+ sourcepath=""
+ srcdir="${src.dir}/../webapps/fitcDemo/WEB-INF/src"
+ destdir="${classes.dir}"
+ debug="${debug.state}"
+ classpathref="project.classpath"
+ fork="yes"
+ verbose="no"
+ nowarn="yes"
+ executable="${java.home}/../bin/javac"
+ target="${java.target_version}">
+
+ </javac>
+
+ <javac
+ sourcepath=""
+ srcdir="${src.dir}/../webapps/oflaDemo/WEB-INF/src"
+ destdir="${classes.dir}"
+ debug="${debug.state}"
+ classpathref="project.classpath"
+ fork="yes"
+ verbose="no"
+ nowarn="yes"
+ executable="${java.home}/../bin/javac"
+ target="${java.target_version}">
+
+ </javac>
+
+ <javac
+ sourcepath=""
+ srcdir="${src.dir}/../webapps/test/WEB-INF/src"
+ destdir="${classes.dir}"
+ debug="${debug.state}"
+ classpathref="project.classpath"
+ fork="yes"
+ verbose="no"
+ nowarn="yes"
+ executable="${java.home}/../bin/javac"
+ target="${java.target_version}">
+
+ </javac>
+ </target>
+
+ <target name="javadoc" description="Generate JavaDoc">
+ <javadoc
+ classpathref="project.classpath"
+ destdir="${javadoc.dir}"
+ author="true"
+ version="true"
+ use="true"
+ splitindex="true"
+ windowtitle="Red5">
+
+ <fileset dir="src" defaultexcludes="yes">
+ <include name="org/red5/**"/>
+ <exclude name="**/*.xml"/>
+ <exclude name="**/*.xsd"/>
+ </fileset>
+
+ <doctitle><![CDATA[<h1>Red5 Server Documentation</h1>]]></doctitle>
+ <bottom><![CDATA[<i>Copyright © 2006 <a href="http://osflash.org/red5" target="_blank">the Red5 project</a>.</i>]]></bottom>
+ <tag name="todo" scope="all" description="To do:"/>
+ <group title="Public API" packages="org.red5.server.api:org.red5.server.api.*"/>
+ <group title="Network Protocols" packages="org.red5.server.net:org.red5.server.net.*"/>
+ <group title="Streaming" packages="org.red5.server.stream:org.red5.server.stream.*"/>
+ <group title="IO Packages" packages="org.red5.io:org.red5.io.*"/>
+ <link href="http://java.sun.com/j2se/1.5.0/docs/api"/>
+ <link href="http://jetty.mortbay.org/jetty6/jetty"/>
+ <link href="http://java.sun.com/j2se/1.5.0/docs/api"/>
+ <link href="http://directory.apache.org/subprojects/mina/apidocs"/>
+ <link href="http://www.springframework.org/docs/api"/>
+ <link href="http://www.opensymphony.com/quartz/api"/>
+ </javadoc>
+ </target>
+
+ <target name="jar" description="Make Archive" depends="compile">
+ <jar destfile="red5.jar">
+ <fileset dir="${classes.dir}">
+ <include name="**"/>
+ <exclude name="org/red5/server/webapp/**"/>
+ <exclude name="org/red5/demos/**"/>
+ <exclude name="testcases/**"/>
+ </fileset>
+ <!--
+ <metainf dir="${src}/${metainf}">
+ <include name="*.xml"/>
+ </metainf>
+ -->
+ <manifest>
+ <attribute name="Built-By" value="RED5 Project - red5 at osflash.org"/>
+ <attribute name="Main-Class" value="org.red5.server.Standalone"/>
+ <attribute name="Class-Path"
+ value="conf/ lib/slf4j-log4j12.jar lib/cglib-nodep-2.1_2.jar lib/jetty.jar lib/jetty-util.jar lib/commons-beanutils.jar lib/commons-collections.jar lib/commons-logging.jar lib/jpda.jar lib/js.jar lib/junit.jar lib/log4j-1.2.9.jar lib/mina-filter-ssl-0.9.3.jar lib/mina-core-0.9.3.jar lib/mina-integration-spring-0.9.3.jar lib/servlet-api.jar lib/spring-scripting-support.jar lib/spring.jar lib/xbean_xpath.jar lib/quartz-1.5.2.jar lib/xmlrpc-2.0.1.jar lib/commons-codec-1.3.jar lib/commons-httpclient-3.0.1.jar "/>
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="dist" description="Make Distribution" depends="clean, jar, javadoc">
+ <copy todir="${dist.dir}/doc">
+ <fileset dir="doc"/>
+ </copy>
+ <copy todir="${dist.dir}/lib">
+ <fileset dir="lib"/>
+ </copy>
+ <copy todir="${dist.dir}/conf">
+ <fileset dir="conf"/>
+ </copy>
+ <copy todir="${dist.dir}/webapps">
+ <fileset dir="webapps"/>
+ </copy>
+ <copy todir="${dist.dir}">
+ <fileset dir="./">
+ <include name="red5.jar"/>
+ <include name="red5.bat"/>
+ <include name="red5.sh"/>
+ <include name="license.txt"/>
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="installerdist" description="Make Installer Distribution" depends="dist">
+ <copy todir="${dist.dir}">
+ <fileset dir="./">
+ <include name=".classpath"/>
+ <include name=".project"/>
+ <include name=".springBeans"/>
+ <include name="build.xml"/>
+ </fileset>
+ </copy>
+ <copy todir="${dist.dir}/src">
+ <fileset dir="src"/>
+ </copy>
+ <copy todir="${dist.dir}/swf">
+ <fileset dir="swf"/>
+ </copy>
+ </target>
+
+ <target name="server" depends="compile">
+ <java classname="org.red5.server.Standalone" fork="true">
+ <classpath>
+ <pathelement location="${classes.dir}"/>
+ <path refid="project.classpath"/>
+ <pathelement location="${config.dir}"/>
+ </classpath>
+ </java>
+ </target>
+
+ <target name="webwar" depends="compile">
+ <delete dir="webdir"/>
+ <mkdir dir="webdir"/>
+ <mkdir dir="webdir/WEB-INF"/>
+ <mkdir dir="webdir/WEB-INF/lib"/>
+ <mkdir dir="webdir/conf"/>
+ <mkdir dir="webdir/hosts"/>
+ <copy todir="webdir/WEB-INF/lib">
+ <fileset dir="${lib.dir}">
+ <include name="cglib-nodep-2.1_2.jar"/>
+ <include name="commons-beanutils.jar"/>
+ <include name="commons-collections.jar"/>
+ <include name="commons-logging.jar"/>
+ <include name="jetty.jar"/>
+ <include name="jetty-util.jar"/>
+ <include name="jpda.jar"/>
+ <include name="js.jar"/>
+ <include name="junit.jar"/>
+ <include name="log4j-1.2.9.jar"/>
+ <include name="mina-0.9.0.jar"/>
+ <include name="slf4j-log4j12.jar"/>
+ <include name="spring.jar"/>
+ <include name="spring-scripting-support.jar"/>
+ <include name="xbean.jar"/>
+ <include name="xbean_xpath.jar"/>
+ </fileset>
+ <fileset dir="./">
+ <include name="red5.jar"/>
+ </fileset>
+ </copy>
+ <copy todir="webdir/conf">
+ <fileset dir="./conf">
+ <include name="global.xml"/>
+ <include name="log4j.properties"/>
+ <include name="red5.properties"/>
+ <include name="red5_web.xml"/>
+ </fileset>
+ </copy>
+ <copy todir="webdir">
+ <fileset dir="./webapps/defaultApp">
+ <include name="index.html"/>
+ </fileset>
+ </copy>
+ <war destfile="Red5.war" webxml="conf/web-default.xml">
+ <fileset dir="webdir"/>
+ <lib dir="webdir/WEB-INF/lib"/>
+ </war>
+ <delete dir="webdir"/>
+ </target>
+
+ <target name="run-tests" if="junit.installed" depends="compiletests" description="Run JUnit tests and generate HTML reports">
+ <junit fork="true" haltonfailure="no" printsummary="no" showoutput="no" dir="${testreports.dir}">
+ <classpath>
+ <path refid="full.classpath"/>
+ <pathelement location="${testclass.dir}"/>
+ </classpath>
+ <formatter type="xml" />
+ <batchtest todir="${testreports.dir}">
+ <fileset dir="${testclass.dir}">
+ <include name="**/*Test.class"/>
+ <exclude name="**/Abstract*Test.class"/>
+ <exclude name="**/*AbstractTest.class"/>
+ </fileset>
+ </batchtest>
+ </junit>
+ <junitreport todir="${test.dir}">
+ <fileset dir="${testreports.dir}">
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report format="frames" todir="${testdoc.dir}"/>
+ </junitreport>
+ </target>
+
+ <target name="compiletests" depends="jar" if="junit.installed" description="Compiles junit test classes">
+ <javac srcdir="${test.dir}" destdir="${testclass.dir}">
+ <classpath>
+ <path refid="full.classpath"/>
+ </classpath>
+ <include name="**/*.java"/>
+ </javac>
+ </target>
+
+
+ <target name="all" depends="clean, prepare, compile, jar, webwar, javadoc"/>
+
+</project>
Note:
Diffs are chopped if more than 30k.
This is to get past the limit on the mailing list.
More information about the Red5commits
mailing list