alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

<project name="Selenium Javascript Build" default="run_jsunit_tests" basedir=".">

	<!-- global properties -->
	<property name="JSUnitHome" value="${basedir}/jsunit"/>
	<property name="WebServerPort" value="8000"/> 
		
    <path id="JSUnitClassPath">
        <fileset dir="${JSUnitHome}/java/lib">
            <include name="*.jar"/>
        </fileset>
        <fileset dir="${JSUnitHome}/java/bin">
            <include name="jsunit.jar"/>
        </fileset>
    </path>
	
	
	<!-- Private independant targets -->

	<target name="-start_web_server" >
    	<exec executable="startWebServer.bat" spawn="true" />
    	<waitfor maxwaitunit="second" maxwait="5" timeoutproperty="webserver.timeout">
    	     <http url="http://localhost:${WebServerPort}"/>
    	</waitfor>
    	<fail message="Timed out waiting for http://localhost:${WebServerPort}" if="webserver.timeout"/>
    </target>

    <target name="-stop_web_server" description="Stops a web server">
    	<exec executable="stopWebServer.bat"  />
    </target>
	
	<target name="-execute_jsunit_tests">
        
		<property name="JSUnitServerPort" value="8080"/> 
	
		<!-- TODO : Make this locally configurable without needing to hack build.xml -->
		<property name="browserFileNames" value="c:\program files\Mozilla Firefox\firefox.exe,c:\program files\internet explorer\iexplore.exe"/>
		
		<property name="JSUnitSuitePath"  value="/tests/jsUnitSuite.html"/>
		<property name="JSUnitTestRunnerPath"  value="/jsunit/testRunner.html"/>
		
		<!-- TODO: Theres a lot of moving parts here!
		         - The JSUnit testrunner and the tests themselves are served to the browser by the (python) webserver
		         - The Browser communicates with the build via a JSUnit server running on jetty
		   - consolidate to one webserver?
		   - Get runner and tests from the filesystem instead?
		-->            
		<property name="testUrl" value="http://localhost:${WebServerPort}${JSUnitTestRunnerPath}?testPage=http://localhost:${WebServerPort}${JSUnitSuitePath}&autoRun=true&submitresults=localhost:${JSUnitServerPort}/jsunit/acceptor"/>

        <junit showoutput="true" failureproperty="JSUnitTestsFailed">
            <classpath refid="JSUnitClassPath"/>
            <sysproperty key="browserFileNames" value="${browserFileNames}"/>
            <sysproperty key="url" value="${testUrl}"/>
            <sysproperty key="port" value="${JSUnitServerPort}"/>
            <sysproperty key="logsDirectory" value="jsunit-logs"/>
            <test name="net.jsunit.StandaloneTest"/>
        </junit>
	</target>
	
	<target name="-check_for_jsunit_failure">
    	<fail message="One or more JSUnit Tests Failed" if="JSUnitTestsFailed"/>
	</target>
	
    <!-- Dependancy Targets -->
	<target name="--run_jsunit_tests" depends=" -start_web_server, -execute_jsunit_tests, -stop_web_server, -check_for_jsunit_failure"/>
	
	<!-- Public Targets -->
	<target name="run_jsunit_tests" description="Runs selenium JSUnit tests" depends="--run_jsunit_tests"/>
	
</project>
... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.