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 9.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <?xml version="1.0"?>
  2. <project xmlns:antcontrib="antlib:net.sf.antcontrib" xmlns:ivy="antlib:org.apache.ivy.ant"
  3. name="Run Vaadin Testbench Tests" basedir="." default="run-and-clean-up">
  4. <include file="../common.xml" />
  5. <dirname property="test.xml.dir" file="${ant.file.Run Vaadin Testbench Tests}" />
  6. <!-- ================================================================== -->
  7. <!-- Configuration -->
  8. <!-- ================================================================== -->
  9. <!-- Browsers to use for testing -->
  10. <property name="browsers-windows"
  11. value="winxp-ie8,win7-ie9,win7-ie10,winxp-firefox17-esr,winxp-safari5,winxp-googlechrome21,winxp-opera12" />
  12. <property name="browsers-linux"
  13. value="linux-firefox3,linux-opera10,linux-googlechrome8" />
  14. <property name="browsers-mac"
  15. value="osx-firefox3,osx-opera10,osx-googlechrome8,osx-safari4,osx-safari5" />
  16. <property name="browsers" value="${browsers-windows}" />
  17. <!-- Number of times to retry a test if it fails -->
  18. <property name="retries" value="2" />
  19. <!-- Screen shot base directory -->
  20. <fail unless="com.vaadin.testbench.screenshot.directory"
  21. message="The 'com.vaadin.testbench.screenshot.directory' property must be defined." />
  22. <!-- Screen shot resolution -->
  23. <property name="com.vaadin.testbench.screenshot.resolution"
  24. value="1500x850" />
  25. <!-- Host running Testbench Hub -->
  26. <property name="com.vaadin.testbench.tester.host" value="testbench-hub.intra.itmill.com" />
  27. <property name="com.vaadin.testbench.screenshot.block.error"
  28. value="0.025" />
  29. <property name="com.vaadin.testbench.debug" value="false" />
  30. <target name="initialize">
  31. <!-- classpath must include test bench jar and its dependencies -->
  32. <path id="classpath">
  33. <fileset dir="${com.vaadin.testbench.lib.dir}"
  34. includes="**/*.jar" />
  35. </path>
  36. </target>
  37. <!-- fileset containing all TestBench tests to run -->
  38. <fileset dir="${test.xml.dir}" id="html-test-files">
  39. <include name="src/**/*.html" />
  40. <exclude name="integration-testscripts/**/*.html" />
  41. </fileset>
  42. <!-- This target converts HTML tests files to java junit tests. One test
  43. file for each browser is created. -->
  44. <target name="create-tests" depends="initialize, remove-temp-testclasses">
  45. <!-- Temporary output directory, created and removed by this script -->
  46. <fail unless="test-output-dir"
  47. message="The 'test-output-dir' property must be defined." />
  48. <property name="class-dir" value="${test-output-dir}/classes" />
  49. <pathconvert pathsep=" " property="testfiles" refid="html-test-files" />
  50. <java classname="com.vaadin.testbench.util.TestConverter"
  51. classpathref="classpath" fork="true">
  52. <sysproperty key="com.vaadin.testbench.test.retries"
  53. value="${retries}" />
  54. <jvmarg value="-Duser.language=en" />
  55. <jvmarg value="-Duser.country=US" />
  56. <arg value="${test-output-dir}" />
  57. <arg value="${browsers}" />
  58. <arg line="${testfiles}" />
  59. </java>
  60. </target>
  61. <!-- This target complies the generated java junit tests. -->
  62. <target name="compile-tests" depends="create-tests">
  63. <mkdir dir="${class-dir}" />
  64. <javac includeantruntime="false" srcdir="${test-output-dir}"
  65. destdir="${class-dir}" debug="on" fork="yes" failonerror="false"
  66. encoding="UTF8">
  67. <classpath>
  68. <path refid="classpath" />
  69. </classpath>
  70. </javac>
  71. </target>
  72. <!-- ================================================================== -->
  73. <!-- Running Tests -->
  74. <!-- ================================================================== -->
  75. <target name="check-parameters">
  76. <fail unless="com.vaadin.testbench.lib.dir"
  77. message="The 'com.vaadin.testbench.lib.dir' property must be defined." />
  78. <fail unless="com.vaadin.testbench.tester.host"
  79. message="The 'com.vaadin.testbench.tester.host' property must be defined." />
  80. <fail unless="com.vaadin.testbench.deployment.url"
  81. message="The 'com.vaadin.testbench.deployment.url' property must be defined." />
  82. </target>
  83. <target name="run-tests" depends="compile-tests">
  84. <fileset dir="${test-output-dir}" id="tests-fileset">
  85. <include name="**/**.java" />
  86. </fileset>
  87. <antcontrib:for threadCount="30" parallel="true"
  88. keepgoing="true" param="target">
  89. <path>
  90. <fileset refid="tests-fileset" />
  91. </path>
  92. <sequential>
  93. <antcall target="execute-tests">
  94. <param name="target" value="@{target}" />
  95. <reference refid="classpath" />
  96. </antcall>
  97. </sequential>
  98. </antcontrib:for>
  99. </target>
  100. <!-- This target runs the generated and compiled junit tests -->
  101. <target name="execute-tests">
  102. <junit fork="yes" printsummary="withOutAndErr" maxmemory="96m">
  103. <classpath>
  104. <path refid="classpath" />
  105. <pathelement path="${class-dir}" />
  106. </classpath>
  107. <formatter usefile="false" type="plain" />
  108. <jvmarg
  109. value="-Dcom.vaadin.testbench.tester.host=${com.vaadin.testbench.tester.host}" />
  110. <jvmarg
  111. value="-Dcom.vaadin.testbench.deployment.url=${com.vaadin.testbench.deployment.url}" />
  112. <!-- Define where the reference screenshots and diff files are
  113. saved -->
  114. <jvmarg
  115. value="-Dcom.vaadin.testbench.screenshot.directory=${com.vaadin.testbench.screenshot.directory}" />
  116. <!-- Resolution for screenshots -->
  117. <jvmarg
  118. value="-Dcom.vaadin.testbench.screenshot.resolution=${com.vaadin.testbench.screenshot.resolution}" />
  119. <jvmarg
  120. value="-Dcom.vaadin.testbench.debug=${com.vaadin.testbench.debug}" />
  121. <jvmarg
  122. value="-Dcom.vaadin.testbench.screenshot.block.error=${com.vaadin.testbench.screenshot.block.error}" />
  123. <jvmarg value="-Djava.awt.headless=true" />
  124. <!-- true/false system arguments -->
  125. <jvmarg
  126. value="-Dcom.vaadin.testbench.screenshot.softfail=${com.vaadin.testbench.screenshot.softfail}" />
  127. <jvmarg
  128. value="-Dcom.vaadin.testbench.screenshot.reference.debug=${com.vaadin.testbench.screenshot.reference.debug}" />
  129. <jvmarg
  130. value="-Dcom.vaadin.testbench.screenshot.cursor=${com.vaadin.testbench.screenshot.cursor}" />
  131. <batchtest>
  132. <filelist dir="${test-output-dir}" files="${target}" />
  133. </batchtest>
  134. </junit>
  135. </target>
  136. <!-- Remove temporary source and compiled java files -->
  137. <target name="remove-temp-testclasses">
  138. <delete failonerror="false">
  139. <fileset dir="${test-output-dir}">
  140. <include name="**/**.java" />
  141. <include name="**/**.class" />
  142. </fileset>
  143. </delete>
  144. </target>
  145. <!-- Remove old error screenshots -->
  146. <target name="remove-error-screens">
  147. <mkdir dir="${com.vaadin.testbench.screenshot.directory}/errors" />
  148. <delete>
  149. <fileset
  150. dir="${com.vaadin.testbench.screenshot.directory}/errors">
  151. <include name="**/**.*" />
  152. </fileset>
  153. </delete>
  154. </target>
  155. <!-- ================================================================== -->
  156. <!-- Main Targets -->
  157. <!-- ================================================================== -->
  158. <!-- The default target. -->
  159. <target name="run-and-clean-up"
  160. depends="check-parameters,remove-error-screens,run-tests" />
  161. <!-- Starts the server and runs all TestBench tests -->
  162. <target name="test-package">
  163. <fail unless="war.file" message="No 'war.file' parameter given." />
  164. <property name="test-output-dir"
  165. location="${test.xml.dir}/result/testbench-junit-classes" />
  166. <property name="retries" value="2" />
  167. <!-- Parameters for the test.xml script. -->
  168. <fail unless="com.vaadin.testbench.tester.host"
  169. message="The 'com.vaadin.testbench.tester.host' property must be defined." />
  170. <fail unless="com.vaadin.testbench.deployment.url"
  171. message="The 'com.vaadin.testbench.deployment.url' property must be defined." />
  172. <fail unless="com.vaadin.testbench.lib.dir"
  173. message="The 'com.vaadin.testbench.lib.dir' property must be defined." />
  174. <property name="com.vaadin.testbench.screenshot.block.error"
  175. value="0.025" />
  176. <property name="com.vaadin.testbench.debug" value="false" />
  177. <parallel>
  178. <daemons>
  179. <ant antfile="${test.xml.dir}/vaadin-server.xml"
  180. inheritall="true" inheritrefs="true" target="deploy-and-start" />
  181. </daemons>
  182. <sequential>
  183. <ant antfile="${test.xml.dir}/vaadin-server.xml"
  184. target="wait-for-startup" />
  185. <antcall inheritall="true" inheritrefs="true"
  186. target="run-and-clean-up" />
  187. <echo message="All TestBench tests have been run" />
  188. </sequential>
  189. </parallel>
  190. </target>
  191. </project>