This is an automated email from the ASF dual-hosted git repository. tibordigana pushed a commit to branch SUREFIRE-1590 in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
commit 8cb66ae33c19ff1e750919434c2f0b260d9047da Author: Tibor17 <tibordig...@apache.org> AuthorDate: Sat Nov 24 19:50:47 2018 +0100 [SUREFIRE-1590] Deploy multiple versions of Report XSD --- maven-failsafe-plugin/pom.xml | 8 ++- .../maven/plugin/failsafe/IntegrationTestMojo.java | 2 +- .../surefire/report/StatelessXmlReporter.java | 1 + .../surefire/report/StatelessXmlReporterTest.java | 2 +- maven-surefire-plugin/pom.xml | 18 ++++++ .../maven/plugin/surefire/SurefirePlugin.java | 2 +- maven-surefire-plugin/src/site/apt/index.apt.vm | 9 ++- ...-report.xsd => legacy-surefire-test-report.xsd} | 66 +++++++++++----------- ...est-report.xsd => surefire-test-report-3.0.xsd} | 2 +- .../report/SurefireSchemaValidationTest.java | 2 +- 10 files changed, 69 insertions(+), 43 deletions(-) diff --git a/maven-failsafe-plugin/pom.xml b/maven-failsafe-plugin/pom.xml index dad6c41..8319cba 100644 --- a/maven-failsafe-plugin/pom.xml +++ b/maven-failsafe-plugin/pom.xml @@ -166,7 +166,6 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> - <version>1.8</version> <executions> <execution> <id>generate-test-report</id> @@ -175,8 +174,11 @@ <goal>run</goal> </goals> <configuration> - <target name="generate-failsafe-test-report"> - <move file="${project.build.directory}/source-site/resources/xsd/surefire-test-report.xsd" tofile="${project.build.directory}/source-site/resources/xsd/failsafe-test-report.xsd" /> + <target name="generate-failsafe-test-reports"> + <move file="${project.build.directory}/source-site/resources/xsd/surefire-test-report-3.0.xsd" + tofile="${project.build.directory}/source-site/resources/xsd/failsafe-test-report-3.0.xsd"/> + <move file="${project.build.directory}/source-site/resources/xsd/legacy-surefire-test-report.xsd" + tofile="${project.build.directory}/source-site/resources/xsd/failsafe-test-report.xsd"/> </target> </configuration> </execution> diff --git a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/IntegrationTestMojo.java b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/IntegrationTestMojo.java index edc95c4..ebd1fb6 100644 --- a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/IntegrationTestMojo.java +++ b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/IntegrationTestMojo.java @@ -451,7 +451,7 @@ public class IntegrationTestMojo @Override protected String getReportSchemaLocation() { - return "https://maven.apache.org/surefire/maven-failsafe-plugin/xsd/failsafe-test-report.xsd"; + return "https://maven.apache.org/surefire/maven-failsafe-plugin/xsd/failsafe-test-report-3.0.xsd"; } @Override 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 0f2b7e9..b89c4e9 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 @@ -355,6 +355,7 @@ public class StatelessXmlReporter ppw.addAttribute( "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance" ); ppw.addAttribute( "xsi:noNamespaceSchemaLocation", xsdSchemaLocation ); + ppw.addAttribute( "version", "3.0" ); ppw.addAttribute( "name", report.getReportName( reportNameSuffix ) ); 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 6cb5ba7..6e6f3d5 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 @@ -46,7 +46,7 @@ public class StatelessXmlReporterTest extends TestCase { private static final String XSD = - "https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd"; + "https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd"; private final static String TEST_ONE = "aTestMethod"; private final static String TEST_TWO = "bTestMethod"; private final static String TEST_THREE = "cTestMethod"; diff --git a/maven-surefire-plugin/pom.xml b/maven-surefire-plugin/pom.xml index 43a53bf..9fb9c2a 100644 --- a/maven-surefire-plugin/pom.xml +++ b/maven-surefire-plugin/pom.xml @@ -110,6 +110,24 @@ </execution> </executions> </plugin> + <plugin> + <artifactId>maven-antrun-plugin</artifactId> + <executions> + <execution> + <id>generate-test-report</id> + <phase>site</phase> + <goals> + <goal>run</goal> + </goals> + <configuration> + <target name="generate-legacy-surefire-test-report"> + <move file="${project.build.directory}/site/xsd/legacy-surefire-test-report.xsd" + tofile="${project.build.directory}/site/xsd/surefire-test-report.xsd"/> + </target> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> diff --git a/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java b/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java index 6c86801..fdc758a 100644 --- a/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java +++ b/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java @@ -394,7 +394,7 @@ public class SurefirePlugin @Override protected String getReportSchemaLocation() { - return "https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd"; + return "https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd"; } // now for the implementation of the field accessors diff --git a/maven-surefire-plugin/src/site/apt/index.apt.vm b/maven-surefire-plugin/src/site/apt/index.apt.vm index 7482ae6..71be8f1 100644 --- a/maven-surefire-plugin/src/site/apt/index.apt.vm +++ b/maven-surefire-plugin/src/site/apt/index.apt.vm @@ -84,7 +84,14 @@ mvn verify By default, these files are generated in <<<$\{basedir\}/target/${thisPlugin.toLowerCase()}-reports/TEST-*.xml>>>. The schema for the ${thisPlugin} XML reports is available at - {{{./xsd/${thisPlugin.toLowerCase()}-test-report.xsd}${thisPlugin} XML Report Schema}}. + {{{./xsd/${thisPlugin.toLowerCase()}-test-report-3.0.xsd}${thisPlugin} XML Report Schema}}. + + The XML reports generated by legacy plugins (versions up to 2.22.0) should be validated by + {{{./xsd/${thisPlugin.toLowerCase()}-test-report.xsd}Legacy ${thisPlugin} XML Report Schema}}. + + Two plugin versions (2.22.1 and 3.0.0-M1) however generate 3.0 XML reports they still refer to legacy + schema (see <<<noNamespaceSchemaLocation>>> in XML Report). The projects which expect XML Reports + validated by XSD Schema, tools e.g NUnit, should not use versions 2.22.1 and 3.0.0-M1 of the ${thisPlugin}. For an HTML format of the report, please see the {{{http://maven.apache.org/plugins/maven-surefire-report-plugin/}Maven Surefire Report Plugin}}. diff --git a/maven-surefire-plugin/src/site/resources/xsd/surefire-test-report.xsd b/maven-surefire-plugin/src/site/resources/xsd/legacy-surefire-test-report.xsd similarity index 65% copy from maven-surefire-plugin/src/site/resources/xsd/surefire-test-report.xsd copy to maven-surefire-plugin/src/site/resources/xsd/legacy-surefire-test-report.xsd index 898bb86..684f175 100644 --- a/maven-surefire-plugin/src/site/resources/xsd/surefire-test-report.xsd +++ b/maven-surefire-plugin/src/site/resources/xsd/legacy-surefire-test-report.xsd @@ -47,30 +47,30 @@ <xs:extension base="xs:string"> <xs:attribute name="message" type="xs:string"/> <xs:attribute name="type" type="xs:string" use="required"/> + <xs:attribute name="time" type="SUREFIRE_TIME" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> - <xs:element name="rerunFailure" minOccurs="0" maxOccurs="unbounded"> + <xs:element name="rerunFailure" nillable="true" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> - <xs:sequence> - <xs:element name="stackTrace" type="xs:string"/> - <xs:element name="system-out" type="xs:string" minOccurs="0"/> - <xs:element name="system-err" type="xs:string" minOccurs="0"/> - </xs:sequence> - <xs:attribute name="message" type="xs:string"/> - <xs:attribute name="type" type="xs:string" use="required"/> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="message" type="xs:string"/> + <xs:attribute name="type" type="xs:string" use="required"/> + <xs:attribute name="time" type="SUREFIRE_TIME" /> + </xs:extension> + </xs:simpleContent> </xs:complexType> </xs:element> - <xs:element name="flakyFailure" minOccurs="0" maxOccurs="unbounded"> + <xs:element name="flakyFailure" nillable="true" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> - <xs:sequence> - <xs:element name="stackTrace" type="xs:string"/> - <xs:element name="system-out" type="xs:string" minOccurs="0"/> - <xs:element name="system-err" type="xs:string" minOccurs="0"/> - </xs:sequence> - <xs:attribute name="message" type="xs:string"/> - <xs:attribute name="type" type="xs:string" use="required"/> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="message" type="xs:string"/> + <xs:attribute name="type" type="xs:string" use="required"/> + <xs:attribute name="time" type="SUREFIRE_TIME" /> </xs:extension> + </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="skipped" nillable="true" minOccurs="0" maxOccurs="1"> @@ -92,30 +92,28 @@ </xs:simpleContent> </xs:complexType> </xs:element> - <xs:element name="rerunError" minOccurs="0" maxOccurs="unbounded"> + <xs:element name="rerunError" nillable="true" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> - <xs:sequence> - <xs:element name="stackTrace" type="xs:string"/> - <xs:element name="system-out" type="xs:string" minOccurs="0"/> - <xs:element name="system-err" type="xs:string" minOccurs="0"/> - </xs:sequence> - <xs:attribute name="message" type="xs:string"/> - <xs:attribute name="type" type="xs:string" use="required"/> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="message" type="xs:string"/> + <xs:attribute name="type" type="xs:string" use="required"/> + <xs:attribute name="time" type="SUREFIRE_TIME" /> </xs:extension> + </xs:simpleContent> </xs:complexType> </xs:element> - <xs:element name="flakyError" minOccurs="0" maxOccurs="unbounded"> + <xs:element name="flakyError" nillable="true" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> - <xs:sequence> - <xs:element name="stackTrace" type="xs:string"/> - <xs:element name="system-out" type="xs:string" minOccurs="0"/> - <xs:element name="system-err" type="xs:string" minOccurs="0"/> - </xs:sequence> - <xs:attribute name="message" type="xs:string"/> - <xs:attribute name="type" type="xs:string" use="required"/> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="message" type="xs:string"/> + <xs:attribute name="type" type="xs:string" use="required"/> + <xs:attribute name="time" type="SUREFIRE_TIME" /> </xs:extension> + </xs:simpleContent> </xs:complexType> </xs:element> - <xs:element name="system-out" type="xs:string" minOccurs="0"/> - <xs:element name="system-err" type="xs:string" minOccurs="0"/> + <xs:element name="system-out" nillable="true" minOccurs="0" maxOccurs="1"/> + <xs:element name="system-err" nillable="true" minOccurs="0" maxOccurs="1"/> </xs:sequence> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="classname" type="xs:string"/> diff --git a/maven-surefire-plugin/src/site/resources/xsd/surefire-test-report.xsd b/maven-surefire-plugin/src/site/resources/xsd/surefire-test-report-3.0.xsd similarity index 99% rename from maven-surefire-plugin/src/site/resources/xsd/surefire-test-report.xsd rename to maven-surefire-plugin/src/site/resources/xsd/surefire-test-report-3.0.xsd index 898bb86..81b08f4 100644 --- a/maven-surefire-plugin/src/site/resources/xsd/surefire-test-report.xsd +++ b/maven-surefire-plugin/src/site/resources/xsd/surefire-test-report-3.0.xsd @@ -17,7 +17,7 @@ ~ specific language governing permissions and limitations ~ under the License. --> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="3.0"> <xs:simpleType name="SUREFIRE_TIME"> <xs:restriction base="xs:string"> <xs:pattern value="(([0-9]{0,3},)*[0-9]{3}|[0-9]{0,3})*(\.[0-9]{0,3})?"/> diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireSchemaValidationTest.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireSchemaValidationTest.java index c51887d..008f206 100644 --- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireSchemaValidationTest.java +++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireSchemaValidationTest.java @@ -94,7 +94,7 @@ public class SurefireSchemaValidationTest { // get the schema file placed in a different module Path xsd = Paths.get( basedir.getAbsolutePath(), "..", "..", "..", "maven-surefire-plugin", "src", "site", - "resources", "xsd", "surefire-test-report.xsd" ); + "resources", "xsd", "surefire-test-report-3.0.xsd" ); return xsd.toFile().getCanonicalFile(); } }