summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2013-11-04 18:10:05 +0200
committerHenri Sara <hesara@vaadin.com>2013-11-18 12:40:30 +0000
commitdde6a4893dd1c3d1bc040d58db6fd4cec012c74c (patch)
tree3910b3b0d5f57e690dfd7d36a192af2d74303606
parent81a1c293f0e407db4a5443b85e57d32cddd397a7 (diff)
downloadvaadin-framework-dde6a4893dd1c3d1bc040d58db6fd4cec012c74c.tar.gz
vaadin-framework-dde6a4893dd1c3d1bc040d58db6fd4cec012c74c.zip
Output test results in XML reports instead of to standard output
This is a workaround for a problem with the integrated TeamCity JUnit listener which is not thread safe. Without this the test results are completely mixed up in TeamCity. For more information, see http://youtrack.jetbrains.com/issue/TW-33176. All standard JUnit test reports is put in result/reports. For uitest there are three report directories: result/reports-tb2, result/reports-tb3 and result/reports-integration to be able to clean the directories before running a given type of tests. This change is based on the separate fixes by John. Change-Id: I2f0dee416f6745544636f2f3dcea0d0832ff8076
-rw-r--r--common.xml17
-rw-r--r--uitest/build.xml2
-rw-r--r--uitest/integration_tests.xml20
-rw-r--r--uitest/tb3test.xml10
-rw-r--r--uitest/test.xml15
5 files changed, 47 insertions, 17 deletions
diff --git a/common.xml b/common.xml
index 88fbc49196..a1c086c57a 100644
--- a/common.xml
+++ b/common.xml
@@ -305,16 +305,20 @@
<property name="test.src" location="${result.dir}/../tests/src" />
<property name="test.classes" location="${result.dir}/tests/classes" />
+ <!-- Ensure report dir is empty before running tests -->
+ <property name="report.dir" location="${result.dir}/reports" />
+ <delete dir="${report.dir}" />
+ <mkdir dir="${report.dir}" />
- <junit printsummary="withOutAndErr" fork="yes">
- <formatter usefile="false" type="plain" />
+ <junit showoutput="no" printsummary="no" fork="yes">
+ <formatter type="xml" />
<jvmarg value="-ea" />
<classpath location="${test.classes}" />
<classpath location="${classes}" />
<classpath refid="classpath.compile.custom" />
<classpath refid="classpath.test.dependencies" />
- <batchtest fork="yes">
+ <batchtest fork="yes" todir="${report.dir}">
<fileset dir="${test.src}">
<exclude name="**/Abstract*" />
<exclude name="**/Mock*" />
@@ -363,7 +367,12 @@
<ivy:cachepath pathid="classpath.test.dependencies" conf="test" />
</target>
- <target name="clean">
+ <target name="remove-test-reports">
+ <fail unless="result.dir" message="No result.dir parameter given" />
+ <delete dir="${result.dir}/reports" />
+ </target>
+
+ <target name="clean" depends="remove-test-reports">
<fail unless="result.dir" message="No result.dir parameter given" />
<delete dir="${result.dir}" />
</target>
diff --git a/uitest/build.xml b/uitest/build.xml
index 76b75e9203..864d111023 100644
--- a/uitest/build.xml
+++ b/uitest/build.xml
@@ -150,8 +150,6 @@
<echo>Checkstyle is disabled for uitest for now</echo>
</target>
<target name="test" depends="checkstyle">
- <!--<antcall target="common.test.run" /> -->
- <echo>WHAT? No JUnit tests for ${module.name}!</echo>
</target>
<target name="test-testbench" depends="clean-testbench-errors" description="Run all TestBench based tests, including server tests">
diff --git a/uitest/integration_tests.xml b/uitest/integration_tests.xml
index 73aac2405c..9f639b9cb5 100644
--- a/uitest/integration_tests.xml
+++ b/uitest/integration_tests.xml
@@ -27,6 +27,9 @@
<!-- Base url where the testable application is deployed -->
<property name="deployment.url" value="http://${test.integration.server}:8080" />
+
+ <property name="report.dir" location="${integration_test.dir}/result/reports-integration" />
+
<!-- ssh host values -->
<property name="ant.hub" value="${test.integration.antfile}" />
<property name="user" value="${test.integration.user}" />
@@ -56,6 +59,7 @@
<property name="testfiles" value="${testfiles}" />
<property name="test-output-dir" value="${integration_test.dir}/result/integration-test-output/${server-name}" />
<property name="retries" value="0" />
+ <property name="report.qualifier" value="integration-tb2/${server-name}" />
<fileset dir="." includes="test.xml" />
</subant>
@@ -69,6 +73,7 @@
<property name="server.start.succeeded" value="1" />
<property name="testfiles" value="${testfiles-theme}" />
<property name="test-output-dir" value="${integration_test.dir}/result/integration-test-output/${server-name}" />
+ <property name="report.qualifier" value="integration-theme-tb2/${server-name}" />
<fileset dir="." includes="test.xml" />
</subant>
@@ -87,6 +92,7 @@
<property name="browsers" value="${test_browsers}" />
<property name="testfiles" value="${test-GAE}" />
<property name="test-output-dir" value="../build/integration-test-gae-output" />
+ <property name="report.qualifier" value="integration-gae-tb2/${server-name}" />
<fileset dir="." includes="test.xml" />
</subant>
@@ -105,16 +111,19 @@
<fail unless="server-name" message="Server name must be defined in server-name" />
<fail unless="deployment.url" message="Deplyoment url must be defined in deployment.url" />
<fail unless="com.vaadin.testbench.screenshot.directory" message="Screenshot directory must be defined in com.vaadin.testbench.screenshot.directory" />
-
- <junit printsummary="withOutAndErr" fork="yes">
- <formatter usefile="false" type="plain" />
+ <property name="server.report.dir" location="${report.dir}/integration-test-tb3/${server-name}" />
+ <!-- The junit task does not create the report dir... -->
+ <mkdir dir="${server.report.dir}" />
+
+ <junit showoutput="no" printsummary="no" fork="yes">
+ <formatter type="xml" />
<classpath refid="classpath.tb3" />
<jvmarg value="-Dcom.vaadin.testbench.screenshot.directory=${com.vaadin.testbench.screenshot.directory}" />
<jvmarg value="-Ddeployment.url=${deployment.url}" />
<jvmarg value="-Dserver-name=${server-name}" />
<jvmarg value="-Djava.awt.headless=true" />
- <test name="${junit.test.suite}" />
+ <test name="${junit.test.suite}" todir="${server.report.dir}" />
</junit>
</target>
@@ -360,6 +369,9 @@
<property name="passphrase" value="${passphrase}" />
<fail unless="sshkey.file" message="You must define an ssh.keyfile parameter" />
<fail unless="com.vaadin.testbench.screenshot.directory" message="You must define a com.vaadin.testbench.screenshot.directory parameter" />
+ <delete dir="${report.dir}" />
+ <mkdir dir="${report.dir}" />
+
<parallel>
<antcontrib:trycatch property="tried">
<try>
diff --git a/uitest/tb3test.xml b/uitest/tb3test.xml
index dd0c12db91..41cce8f0f2 100644
--- a/uitest/tb3test.xml
+++ b/uitest/tb3test.xml
@@ -2,6 +2,7 @@
<project name="tb3test" xmlns:antcontrib="antlib:net.sf.antcontrib" xmlns:ivy="antlib:org.apache.ivy.ant" basedir=".">
<dirname property="tb3test.dir" file="${ant.file.tb3test}" />
+ <property name="report.dir" location="${tb3test.dir}/result/reports-tb3" />
<ivy:resolve file="${tb3test.dir}/ivy.xml" conf="build, build-provided" />
<ivy:cachepath pathid="classpath.tb3.lib" conf="build, build-provided" />
@@ -19,13 +20,16 @@
<target name="run-tb3-suite">
<fail unless="junit.test.suite" message="Define suite to run using junit.test.suite" />
<fail unless="com.vaadin.testbench.screenshot.directory" message="Define screenshot directory using -Dcom.vaadin.testbench.screenshot.directory" />
- <junit printsummary="withOutAndErr" fork="yes">
- <formatter usefile="false" type="plain" />
+ <delete dir="${report.dir}" />
+ <mkdir dir="${report.dir}" />
+
+ <junit showoutput="no" printsummary="no" fork="yes">
+ <formatter type="xml" />
<classpath refid="classpath.tb3" />
<jvmarg value="-Dcom.vaadin.testbench.screenshot.directory=${com.vaadin.testbench.screenshot.directory}" />
<jvmarg value="-Djava.awt.headless=true" />
- <test name="${junit.test.suite}" />
+ <test name="${junit.test.suite}" todir="${report.dir}" />
</junit>
</target>
diff --git a/uitest/test.xml b/uitest/test.xml
index b0db8d47f4..57f61d67fa 100644
--- a/uitest/test.xml
+++ b/uitest/test.xml
@@ -3,7 +3,6 @@
<include file="../common.xml" />
<dirname property="test.xml.dir" file="${ant.file.Run Vaadin Testbench Tests}" />
-
<!-- ================================================================== -->
<!-- Configuration -->
<!-- ================================================================== -->
@@ -84,6 +83,11 @@
</target>
<target name="run-tb2-tests" depends="check-parameters,compile-tests">
+ <property name="report.qualifier" value="tb2" />
+ <property name="report.dir" location="${test.xml.dir}/result/reports-${report.qualifier}" />
+
+ <delete dir="${report.dir}" />
+ <mkdir dir="${report.dir}" />
<fileset dir="${test-output-dir}" id="tests-fileset">
<include name="**/**.java" />
</fileset>
@@ -103,13 +107,16 @@
<!-- This target runs the generated and compiled junit tests -->
<target name="execute-tests">
- <junit fork="yes" printsummary="withOutAndErr" maxmemory="96m">
+ <!-- Junit does not create the report dir so we need to ensure it
+ exists -->
+ <mkdir dir="${report.dir}" />
+ <junit fork="yes" showoutput="no" printsummary="no" maxmemory="96m">
<classpath>
<path refid="classpath" />
<pathelement path="${class-dir}" />
</classpath>
- <formatter usefile="false" type="plain" />
+ <formatter type="xml" />
<jvmarg value="-Dcom.vaadin.testbench.tester.host=${com.vaadin.testbench.tester.host}" />
<jvmarg value="-Dcom.vaadin.testbench.deployment.url=${com.vaadin.testbench.deployment.url}" />
@@ -129,7 +136,7 @@
<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>
+ <batchtest todir="${report.dir}">
<filelist dir="${test-output-dir}" files="${target}" />
</batchtest>
</junit>