SUREFIRE-1217: Create FailsafeStatelessXmlReporter.
Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/c78d238a Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/c78d238a Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/c78d238a Branch: refs/heads/SUREFIRE-1217 Commit: c78d238aa37c9bb7d863082ad7a139251731ca4f Parents: 8b59849 Author: Mirko Friedenhagen <mfriedenha...@apache.org> Authored: Sun Jan 10 21:28:29 2016 +0100 Committer: Mirko Friedenhagen <mfriedenha...@apache.org> Committed: Wed Jan 13 07:05:33 2016 +0100 ---------------------------------------------------------------------- .../report/FailsafeStatelessXmlReporter.java | 39 ++++++++++++++++++++ .../surefire/report/StatelessXmlReporter.java | 20 ++++++++-- .../report/StatelessXmlReporterTest.java | 8 +++- 3 files changed, 62 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/c78d238a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FailsafeStatelessXmlReporter.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FailsafeStatelessXmlReporter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FailsafeStatelessXmlReporter.java new file mode 100644 index 0000000..5689aaf --- /dev/null +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FailsafeStatelessXmlReporter.java @@ -0,0 +1,39 @@ +package org.apache.maven.plugin.surefire.report; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import java.io.File; +import java.util.List; +import java.util.Map; + +/** + * Extension of {@link StatelessXmlReporter} for the maven-failsafe-plugin. + * + * @since 2.19.2 + */ +public class FailsafeStatelessXmlReporter extends StatelessXmlReporter { + + static final String FAILSAFE_TEST_REPORT_XSD = "https://maven.apache.org/surefire/maven-failsafe-plugin/xsd/failsafe-test-report.xsd"; + + public FailsafeStatelessXmlReporter(File reportsDirectory, String reportNameSuffix, boolean trimStackTrace, int rerunFailingTestsCount, Map<String, Map<String, List<WrappedReportEntry>>> testClassMethodRunHistoryMap) { + super(reportsDirectory, reportNameSuffix, trimStackTrace, rerunFailingTestsCount, testClassMethodRunHistoryMap, + FAILSAFE_TEST_REPORT_XSD); + } +} http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/c78d238a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java index 3305c5b..bff5620 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java @@ -86,6 +86,8 @@ public class StatelessXmlReporter private static final Charset ENCODING_CS = Charset.forName( ENCODING ); + static final String SUREFIRE_TEST_REPORT_XSD = "https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd"; + private final File reportsDirectory; private final String reportNameSuffix; @@ -98,15 +100,27 @@ public class StatelessXmlReporter // and the list of runs for each test method private final Map<String, Map<String, List<WrappedReportEntry>>> testClassMethodRunHistoryMap; + final String testReportXsd; + public StatelessXmlReporter( File reportsDirectory, String reportNameSuffix, boolean trimStackTrace, int rerunFailingTestsCount, Map<String, Map<String, List<WrappedReportEntry>>> testClassMethodRunHistoryMap ) { + this( reportsDirectory, reportNameSuffix, trimStackTrace, rerunFailingTestsCount, + testClassMethodRunHistoryMap, SUREFIRE_TEST_REPORT_XSD); + } + + StatelessXmlReporter( File reportsDirectory, String reportNameSuffix, boolean trimStackTrace, + int rerunFailingTestsCount, + Map<String, Map<String, List<WrappedReportEntry>>> testClassMethodRunHistoryMap, + String testReportXsd ) + { this.reportsDirectory = reportsDirectory; this.reportNameSuffix = reportNameSuffix; this.trimStackTrace = trimStackTrace; this.rerunFailingTestsCount = rerunFailingTestsCount; this.testClassMethodRunHistoryMap = testClassMethodRunHistoryMap; + this.testReportXsd = testReportXsd; } public void testSetCompleted( WrappedReportEntry testSetReportEntry, TestSetStats testSetStats ) @@ -129,7 +143,7 @@ public class StatelessXmlReporter ppw.setEncoding( ENCODING ); createTestSuiteElement( ppw, testSetReportEntry, testSetStats, reportNameSuffix, - testSetReportEntry.elapsedTimeAsString() ); + testSetReportEntry.elapsedTimeAsString(), testReportXsd ); showProperties( ppw ); @@ -348,14 +362,14 @@ public class StatelessXmlReporter } private static void createTestSuiteElement( XMLWriter ppw, WrappedReportEntry report, TestSetStats testSetStats, - String reportNameSuffix1, String timeAsString ) + String reportNameSuffix1, String timeAsString, String testReportXsd ) { ppw.startElement( "testsuite" ); ppw.addAttribute( "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance" ); ppw.addAttribute( "xsi:noNamespaceSchemaLocation", - "https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" ); + testReportXsd ); ppw.addAttribute( "name", report.getReportName( reportNameSuffix1 ) ); http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/c78d238a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java index 09fa1d1..643a291 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java @@ -84,8 +84,7 @@ public class StatelessXmlReporterTest public void testFileNameWithoutSuffix() { StatelessXmlReporter reporter = - new StatelessXmlReporter( reportDir, null, false, 0, - new ConcurrentHashMap<String, Map<String, List<WrappedReportEntry>>>() ); + createStatelessXmlReporter(); reporter.cleanTestHistoryMap(); ReportEntry reportEntry = new SimpleReportEntry( getClass().getName(), getClass().getName(), 12 ); @@ -99,6 +98,11 @@ public class StatelessXmlReporterTest expectedReportFile.exists() ); } + StatelessXmlReporter createStatelessXmlReporter() { + return new StatelessXmlReporter( reportDir, null, false, 0, + new ConcurrentHashMap<String, Map<String, List<WrappedReportEntry>>>() ); + } + public void testAllFieldsSerialized() throws IOException