[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 &#169; 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