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

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