mirror of
https://github.com/vaadin/framework.git
synced 2024-07-28 08:18:00 +02:00
208 lines
8.7 KiB
XML
208 lines
8.7 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<project name="Run Vaadin Testbench Tests" basedir="." default="run-and-clean-up">
|
|
<!-- ================================================================== -->
|
|
<!-- Configuration -->
|
|
<!-- ================================================================== -->
|
|
<!-- Browsers to use for testing -->
|
|
<property name="browsers-windows" value="winxp-ie6,winxp-ie7,winxp-ie8,win7-ie9,winxp-firefox36,winxp-firefox12,winxp-safari4,winxp-safari5,winxp-googlechrome13,winxp-googlechrome18,winxp-opera1060,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 -->
|
|
<!-- <property name="test-output-dir" value="../build/test-output" /> -->
|
|
<fail unless="test-output-dir" message="The 'test-output-dir' property must be defined." />
|
|
|
|
<property name="class-dir" value="${test-output-dir}/classes" />
|
|
<taskdef resource="net/sf/antcontrib/antlib.xml">
|
|
<classpath>
|
|
<pathelement location="../build/lib/ant-contrib-1.0b3.jar" />
|
|
</classpath>
|
|
</taskdef>
|
|
|
|
<!-- classpath must include test bench jar and its dependencies -->
|
|
<path id="classpath">
|
|
<fileset dir="${com.vaadin.testbench.lib.dir}" includes="**/*.jar" />
|
|
<fileset dir="../build/lib" includes="emma*.jar" />
|
|
</path>
|
|
|
|
<!-- 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="remove-temp-testclasses" if="server.start.succeeded">
|
|
<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 srcdir="${test-output-dir}" destdir="${class-dir}" debug="on" fork="yes" failonerror="false" encoding="UTF8">
|
|
<classpath>
|
|
<path refid="classpath" />
|
|
</classpath>
|
|
</javac>
|
|
</target>
|
|
|
|
|
|
<!-- ================================================================== -->
|
|
<!-- Vaadin Server Management -->
|
|
<!-- ================================================================== -->
|
|
|
|
<target name="server-start">
|
|
<fail unless="output-dir" message="The 'output-dir' (usually build/result/vaadin-xxx) should be given to test script." />
|
|
<fail unless="package.name" message="The 'package.name' property must be defined." />
|
|
<fail unless="package.filename" message="The 'package.filename' property must be defined." />
|
|
<fail unless="testing.testarea" message="The 'testing.testarea' property must be defined." />
|
|
|
|
<echo>Package name: ${package.name}</echo>
|
|
<echo>Package filename: ${package.filename}</echo>
|
|
<echo>Testing area: ${testing.testarea}</echo>
|
|
|
|
<exec executable="python" searchpath="true" dir=".." resultproperty="server.start.result">
|
|
<arg value="build/testing/vaadin-server.py" />
|
|
<arg value="start" />
|
|
<arg value="${package.name}" />
|
|
<arg value="${package.filename}" />
|
|
<arg value="${output-dir}" />
|
|
<arg value="${testing.testarea}" />
|
|
</exec>
|
|
|
|
<condition property="server.start.succeeded">
|
|
<equals arg1="${server.start.result}" arg2="0" />
|
|
</condition>
|
|
</target>
|
|
|
|
<target name="server-stop">
|
|
<sleep seconds="5" />
|
|
<exec executable="python" dir=".." searchpath="true" resultproperty="server.stop.result">
|
|
<arg value="build/testing/vaadin-server.py" />
|
|
<arg value="stop" />
|
|
</exec>
|
|
<move file="${testing.testarea}/${package.name}/war.ec" todir="../build/result" failonerror="false" />
|
|
</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" if="server.start.succeeded">
|
|
<fileset dir="${test-output-dir}" id="tests-fileset">
|
|
<include name="**/**.java" />
|
|
</fileset>
|
|
|
|
|
|
<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}" />
|
|
</antcall>
|
|
</sequential>
|
|
</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" if="server.start.succeeded">
|
|
</target>
|
|
|
|
<!-- Also starts the server. -->
|
|
<target name="test-package" depends="server-start, run-and-clean-up, server-stop">
|
|
</target>
|
|
|
|
</project> |