vaadin-framework/tests/test.xml
2012-02-15 10:42:31 +02:00

183 lines
7.6 KiB
XML

<?xml version="1.0"?>
<project xmlns:antcontrib="antlib:net.sf.antcontrib"
xmlns:ivy="antlib:org.apache.ivy.ant"
name="Run Vaadin Testbench Tests" basedir="." default="run-and-clean-up">
<property name="project.root" value=".."/>
<!-- Import common targets -->
<import file="../build/common.xml" />
<!-- ================================================================== -->
<!-- Configuration -->
<!-- ================================================================== -->
<!-- Browsers to use for testing -->
<property name="browsers-windows" value="winxp-ie8,win7-ie9,winxp-firefox10,winxp-safari5,winxp-googlechrome17,winxp-opera11" />
<property name="browsers-linux" value="linux-firefox3,linux-opera10,linux-googlechrome8" />
<property name="browsers-mac" value="osx-firefox3,osx-opera10,osx-googlechrome8,osx-safari4,osx-safari5" />
<property name="browsers" value="${browsers-windows}" />
<!-- Number of times to retry a test if it fails -->
<property name="retries" value="2" />
<!-- Screen shot base directory -->
<fail unless="com.vaadin.testbench.screenshot.directory" message="The 'com.vaadin.testbench.screenshot.directory' property must be defined." />
<!-- Screen shot resolution -->
<property name="com.vaadin.testbench.screenshot.resolution" value="1500x850" />
<!-- Host running Testbench Hub -->
<property name="com.vaadin.testbench.tester.host" value="testbench-hub.intra.itmill.com" />
<property name="com.vaadin.testbench.screenshot.block.error" value="0.025"/>
<property name="com.vaadin.testbench.debug" value="false"/>
<!-- Temporary output directory, created and removed by this script -->
<fail unless="test-output-dir" message="The 'test-output-dir' property must be defined." />
<property name="class-dir" value="${test-output-dir}/classes" />
<target name="initialize" depends="common.init-deps">
<ivy:resolve conf="emma"/>
<ivy:cachepath pathid="emma.lib" conf="emma" />
<!-- classpath must include test bench jar and its dependencies -->
<path id="classpath">
<fileset dir="${com.vaadin.testbench.lib.dir}" includes="**/*.jar" />
<path refid="emma.lib" />
</path>
</target>
<!-- fileset containing all TestBench tests to run -->
<fileset dir=".." id="html-test-files">
<include name="tests/**/**.html" />
<include name="testbench/com/vaadin/tests/**/**.html" />
<exclude name="tests/integration-testscripts/**" />
</fileset>
<!-- This target converts HTML tests files to java junit tests. One test file for each browser is created. -->
<target name="create-tests" depends="initialize, remove-temp-testclasses">
<pathconvert pathsep=" " property="testfiles" refid="html-test-files" />
<java classname="com.vaadin.testbench.util.TestConverter" classpathref="classpath" fork="true">
<sysproperty key="com.vaadin.testbench.test.retries" value="${retries}" />
<jvmarg value="-Duser.language=en"/>
<jvmarg value="-Duser.country=US"/>
<arg value="${test-output-dir}" />
<arg value="${browsers}" />
<arg line="${testfiles}" />
</java>
</target>
<!-- This target complies the generated java junit tests. -->
<target name="compile-tests" depends="create-tests">
<mkdir dir="${class-dir}" />
<javac includeantruntime="false" srcdir="${test-output-dir}" destdir="${class-dir}" debug="on" fork="yes" failonerror="false" encoding="UTF8">
<classpath>
<path refid="classpath" />
</classpath>
</javac>
</target>
<!-- ================================================================== -->
<!-- Running Tests -->
<!-- ================================================================== -->
<target name="check-parameters">
<fail unless="com.vaadin.testbench.lib.dir" message="The 'com.vaadin.testbench.lib.dir' property must be defined." />
<fail unless="com.vaadin.testbench.tester.host" message="The 'com.vaadin.testbench.tester.host' property must be defined." />
<fail unless="com.vaadin.testbench.deployment.url" message="The 'com.vaadin.testbench.deployment.url' property must be defined." />
</target>
<target name="run-tests" depends="compile-tests">
<fileset dir="${test-output-dir}" id="tests-fileset">
<include name="**/**.java" />
</fileset>
<antcontrib:for threadCount="30" parallel="true" keepgoing="true" param="target">
<path>
<fileset refid="tests-fileset" />
</path>
<sequential>
<antcall target="execute-tests">
<param name="target" value="@{target}" />
<reference refid="classpath" />
</antcall>
</sequential>
</antcontrib:for>
</target>
<!-- This target runs the generated and compiled junit tests -->
<target name="execute-tests">
<junit fork="yes" printsummary="withOutAndErr" maxmemory="96m">
<classpath>
<path refid="classpath" />
<pathelement path="${class-dir}" />
</classpath>
<jvmarg value="-Dcom.vaadin.testbench.tester.host=${com.vaadin.testbench.tester.host}" />
<jvmarg value="-Dcom.vaadin.testbench.deployment.url=${com.vaadin.testbench.deployment.url}" />
<!-- Define where the reference screenshots and diff files are saved -->
<jvmarg value="-Dcom.vaadin.testbench.screenshot.directory=${com.vaadin.testbench.screenshot.directory}" />
<!-- Resolution for screenshots -->
<jvmarg value="-Dcom.vaadin.testbench.screenshot.resolution=${com.vaadin.testbench.screenshot.resolution}" />
<jvmarg value="-Dcom.vaadin.testbench.debug=${com.vaadin.testbench.debug}" />
<jvmarg value="-Dcom.vaadin.testbench.screenshot.block.error=${com.vaadin.testbench.screenshot.block.error}" />
<jvmarg value="-Djava.awt.headless=true" />
<!-- true/false system arguments -->
<jvmarg value="-Dcom.vaadin.testbench.screenshot.softfail=${com.vaadin.testbench.screenshot.softfail}" />
<jvmarg value="-Dcom.vaadin.testbench.screenshot.reference.debug=${com.vaadin.testbench.screenshot.reference.debug}" />
<jvmarg value="-Dcom.vaadin.testbench.screenshot.cursor=${com.vaadin.testbench.screenshot.cursor}" />
<batchtest>
<filelist dir="${test-output-dir}" files="${target}" />
</batchtest>
</junit>
</target>
<!-- Remove temporary source and compiled java files -->
<target name="remove-temp-testclasses">
<delete failonerror="false">
<fileset dir="${test-output-dir}">
<include name="**/**.java" />
<include name="**/**.class" />
</fileset>
</delete>
</target>
<!-- Remove old error screenshots -->
<target name="remove-error-screens">
<mkdir dir="${com.vaadin.testbench.screenshot.directory}/errors" />
<delete>
<fileset dir="${com.vaadin.testbench.screenshot.directory}/errors">
<include name="**/**.*" />
</fileset>
</delete>
</target>
<!-- ================================================================== -->
<!-- Main Targets -->
<!-- ================================================================== -->
<!-- The default target. -->
<target name="run-and-clean-up" depends="check-parameters,remove-error-screens,run-tests" />
<!-- Also starts the server. -->
<target name="test-package">
<parallel>
<daemons>
<ant antfile="vaadin-server.xml" inheritall="true" inheritrefs="true" target="deploy-and-start" />
</daemons>
<sequential>
<ant antfile="vaadin-server.xml" target="wait-for-startup" />
<antcall inheritall="true" inheritrefs="true" target="run-and-clean-up" />
<move file="${testing.testarea}/${package.name}/war.ec" todir="../build/result" failonerror="false" />
</sequential>
</parallel>
</target>
</project>