You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

test.xml 6.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <?xml version="1.0"?>
  2. <project name="Run Vaadin Testbench Tests" basedir="." default="run-and-clean-up">
  3. <!-- ================================================================== -->
  4. <!-- Configuration -->
  5. <!-- ================================================================== -->
  6. <!-- Browsers to use for testing -->
  7. <property name="browsers" value="winxp-ie6,winxp-ie7,winxp-ie8,winxp-firefox35,winxp-safari4,winxp-googlechrome4,winxp-opera1050" />
  8. <!-- Screen shot base directory -->
  9. <fail unless="com.vaadin.testbench.screenshot.directory" message="The 'com.vaadin.testbench.screenshot.directory' property must be defined." />
  10. <!-- Host running Testbench Hub -->
  11. <property name="com.vaadin.testbench.tester.host" value="192.168.1.44" />
  12. <!-- Temporary output directory, created and removed by this script -->
  13. <property name="test-output-dir" value="../build/test-output" />
  14. <property name="class-dir" value="${test-output-dir}/classes" />
  15. <taskdef resource="net/sf/antcontrib/antcontrib.properties">
  16. <classpath>
  17. <pathelement location="../build/lib/ant-contrib-1.0b3.jar"/>
  18. </classpath>
  19. </taskdef>
  20. <!-- classpath must include test bench jar and its dependencies -->
  21. <path id="classpath">
  22. <fileset dir="${com.vaadin.testbench.lib.dir}" includes="**/*.jar" />
  23. </path>
  24. <!-- fileset containing all tests to run -->
  25. <fileset dir=".." id="html-test-files">
  26. <include name="src/com/vaadin/tests/**/**.html" />
  27. <include name="tests/**/**.html" />
  28. <exclude name="tests/integration-testscripts/**" />
  29. </fileset>
  30. <!-- This target converts HTML tests files to java junit tests. One test file for each browser is created. -->
  31. <target name="create-tests" depends="remove-temp-testclasses">
  32. <fileset id="tests">
  33. <include />
  34. </fileset>
  35. <pathconvert pathsep=" " property="testfiles" refid="html-test-files" />
  36. <java classname="com.vaadin.testbench.util.TestConverter" classpathref="classpath">
  37. <arg value="${test-output-dir}" />
  38. <arg value="${browsers}" />
  39. <arg line="${testfiles}" />
  40. </java>
  41. </target>
  42. <!-- This target complies the generated java junit tests. -->
  43. <target name="compile-tests" depends="create-tests">
  44. <mkdir dir="${class-dir}" />
  45. <javac srcdir="${test-output-dir}" destdir="${class-dir}" debug="on">
  46. <classpath>
  47. <path refid="classpath" />
  48. </classpath>
  49. </javac>
  50. </target>
  51. <!-- ================================================================== -->
  52. <!-- Toolkit Server Management -->
  53. <!-- ================================================================== -->
  54. <target name="server-start">
  55. <fail unless="output-dir" message="The 'output-dir' (usually build/result/vaadin-xxx) should be given to test script." />
  56. <fail unless="package.name" message="The 'package.name' property must be defined." />
  57. <fail unless="package.filename" message="The 'package.filename' property must be defined." />
  58. <fail unless="testing.testarea" message="The 'testing.testarea' property must be defined." />
  59. <echo>Package name: ${package.name}</echo>
  60. <echo>Package filename: ${package.filename}</echo>
  61. <echo>Testing area: ${testing.testarea}</echo>
  62. <exec executable="python" searchpath="true" dir=".." resultproperty="server.start.result">
  63. <arg value="build/testing/toolkit-server.py" />
  64. <arg value="start" />
  65. <arg value="${package.name}" />
  66. <arg value="${package.filename}" />
  67. <arg value="${output-dir}" />
  68. <arg value="${testing.testarea}" />
  69. </exec>
  70. <condition property="server.start.succeeded">
  71. <equals arg1="${server.start.result}" arg2="0" />
  72. </condition>
  73. </target>
  74. <target name="server-stop">
  75. <exec executable="python" dir=".." searchpath="true" resultproperty="server.stop.result">
  76. <arg value="build/testing/toolkit-server.py" />
  77. <arg value="stop" />
  78. </exec>
  79. </target>
  80. <!-- ================================================================== -->
  81. <!-- Running Tests -->
  82. <!-- ================================================================== -->
  83. <target name="check-parameters">
  84. <fail unless="com.vaadin.testbench.lib.dir" message="The 'com.vaadin.testbench.lib.dir' property must be defined." />
  85. <fail unless="com.vaadin.testbench.tester.host" message="The 'com.vaadin.testbench.tester.host' property must be defined." />
  86. <fail unless="com.vaadin.testbench.deployment.url" message="The 'com.vaadin.testbench.deployment.url' property must be defined." />
  87. </target>
  88. <target name="run-tests" depends="compile-tests">
  89. <foreach maxthreads="10" parallel="true" target="execute-tests" param="target">
  90. <path>
  91. <fileset dir="${test-output-dir}" includes="**/**.java" />
  92. </path>
  93. </foreach>
  94. </target>
  95. <!-- This target runs the generated and compiled junit tests -->
  96. <target name="execute-tests">
  97. <junit fork="yes" printsummary="withOutAndErr">
  98. <classpath>
  99. <path refid="classpath" />
  100. <pathelement path="${class-dir}" />
  101. </classpath>
  102. <jvmarg value="-Dcom.vaadin.testbench.tester.host=${com.vaadin.testbench.tester.host}" />
  103. <jvmarg value="-Dcom.vaadin.testbench.deployment.url=${com.vaadin.testbench.deployment.url}" />
  104. <!-- Define where the reference screenshots and diff files are saved -->
  105. <jvmarg value="-Dcom.vaadin.testbench.screenshot.directory=${com.vaadin.testbench.screenshot.directory}" />
  106. <jvmarg value="-Djava.awt.headless=true" />
  107. <!-- true/false system arguments -->
  108. <jvmarg value="-Dcom.vaadin.testbench.screenshot.softfail=${com.vaadin.testbench.screenshot.softfail}" />
  109. <jvmarg value="-Dcom.vaadin.testbench.screenshot.reference.debug=${com.vaadin.testbench.screenshot.reference.debug}" />
  110. <jvmarg value="-Dcom.vaadin.testbench.screenshot.cursor=${com.vaadin.testbench.screenshot.cursor}" />
  111. <batchtest>
  112. <filelist dir="${test-output-dir}" files="${target}" />
  113. </batchtest>
  114. </junit>
  115. </target>
  116. <!-- Remove temporary source and compiled java files -->
  117. <target name="remove-temp-testclasses">
  118. <delete failonerror="false">
  119. <fileset dir="${test-output-dir}">
  120. <include name="**/**.java" />
  121. <include name="**/**.class" />
  122. </fileset>
  123. </delete>
  124. </target>
  125. <!-- Remove old error screenshots -->
  126. <target name="remove-error-screens">
  127. <mkdir dir="${com.vaadin.testbench.screenshot.directory}/errors" />
  128. <delete>
  129. <fileset dir="${com.vaadin.testbench.screenshot.directory}/errors">
  130. <include name="**/**.*" />
  131. </fileset>
  132. </delete>
  133. </target>
  134. <!-- ================================================================== -->
  135. <!-- Main Targets -->
  136. <!-- ================================================================== -->
  137. <!-- The default target. -->
  138. <target name="run-and-clean-up" depends="check-parameters,remove-error-screens,run-tests,remove-temp-testclasses">
  139. </target>
  140. <!-- Also starts the server. -->
  141. <target name="test-package" depends="server-start, run-and-clean-up, server-stop">
  142. </target>
  143. </project>