Updated Branches: refs/heads/master 49eedd6d0 -> 5bfd27173
[SUREFIRE-943] fix test name in XML report Added an integration test for the issue Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/5bfd2717 Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/5bfd2717 Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/5bfd2717 Branch: refs/heads/master Commit: 5bfd2717377ae52bb1a2e0be65f94723ca011b83 Parents: 49eedd6 Author: agudian <andreas.gud...@gmail.com> Authored: Sun Dec 30 00:30:13 2012 +0100 Committer: Kristian Rosenvold <krosenv...@apache.org> Committed: Mon Dec 31 11:50:02 2012 +0100 ---------------------------------------------------------------------- .../its/jiras/Surefire943ReportContentIT.java | 76 +++++++++++++++ .../resources/surefire-943-report-content/pom.xml | 42 ++++++++ .../src/test/java/org/sample/module/My1Test.java | 23 +++++ .../src/test/java/org/sample/module/My2Test.java | 22 ++++ .../src/test/java/org/sample/module/My3Test.java | 22 ++++ .../junitcore/NonConcurrentRunListener.java | 15 ++-- 6 files changed, 193 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/5bfd2717/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire943ReportContentIT.java ---------------------------------------------------------------------- diff --git a/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire943ReportContentIT.java b/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire943ReportContentIT.java new file mode 100644 index 0000000..8e68d28 --- /dev/null +++ b/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire943ReportContentIT.java @@ -0,0 +1,76 @@ +package org.apache.maven.surefire.its.jiras; +/* + * 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.FileNotFoundException; +import org.apache.maven.shared.utils.xml.Xpp3Dom; +import org.apache.maven.shared.utils.xml.Xpp3DomBuilder; +import org.apache.maven.surefire.its.fixture.OutputValidator; +import org.apache.maven.surefire.its.fixture.SurefireJUnit4IntegrationTestCase; + +import org.junit.Assert; +import org.junit.Test; + +public class Surefire943ReportContentIT + extends SurefireJUnit4IntegrationTestCase +{ + + @Test + public void test() + throws Exception + { + OutputValidator validator = unpack( "surefire-943-report-content" ).maven().withFailure().executeTest(); + validator.assertTestSuiteResults( 6, 0, 3, 0 ); + + validate( validator, "org.sample.module.My1Test" ); + validate( validator, "org.sample.module.My2Test" ); + validate( validator, "org.sample.module.My3Test" ); + } + + private void validate( OutputValidator validator, String className ) + throws FileNotFoundException + { + Xpp3Dom testResult = + Xpp3DomBuilder.build( validator.getSurefireReportsFile( "TEST-" + className + ".xml" ).getFileInputStream(), + "UTF-8" ); + Xpp3Dom[] children = testResult.getChildren( "testcase" ); + + Assert.assertEquals( 2, children.length ); + + for ( Xpp3Dom child : children ) + { + Assert.assertEquals( className, child.getAttribute( "classname" ) ); + + if ( "alwaysSuccessful".equals( child.getAttribute( "name" ) ) ) + { + Assert.assertEquals( "Expected no failures for method alwaysSuccessful for " + className, 0, + child.getChildCount() ); + } + else + { + Assert.assertEquals( "Expected methods \"alwaysSuccessful\" and \"fails\" in " + className, "fails", + child.getAttribute( "name" ) ); + Assert.assertEquals( "Expected failure description for method \"fails\" in " + className, 1, + child.getChildren( "failure" ).length ); + } + } + } + +} http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/5bfd2717/surefire-integration-tests/src/test/resources/surefire-943-report-content/pom.xml ---------------------------------------------------------------------- diff --git a/surefire-integration-tests/src/test/resources/surefire-943-report-content/pom.xml b/surefire-integration-tests/src/test/resources/surefire-943-report-content/pom.xml new file mode 100644 index 0000000..ccdea72 --- /dev/null +++ b/surefire-integration-tests/src/test/resources/surefire-943-report-content/pom.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>dummy</groupId> + <version>1.0-SNAPSHOT</version> + <artifactId>dummy</artifactId> + <name>surefire-943-report-content</name> + + <properties> + <surefire.version>2.13</surefire.version> + </properties> + + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>${surefire.version}</version> + <dependencies> + <dependency> + <groupId>org.apache.maven.surefire</groupId> + <artifactId>surefire-junit47</artifactId> + <version>${surefire.version}</version> + </dependency> + </dependencies> + </plugin> + </plugins> + </pluginManagement> + </build> + + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + <version>4.11</version> + </dependency> + </dependencies> +</project> http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/5bfd2717/surefire-integration-tests/src/test/resources/surefire-943-report-content/src/test/java/org/sample/module/My1Test.java ---------------------------------------------------------------------- diff --git a/surefire-integration-tests/src/test/resources/surefire-943-report-content/src/test/java/org/sample/module/My1Test.java b/surefire-integration-tests/src/test/resources/surefire-943-report-content/src/test/java/org/sample/module/My1Test.java new file mode 100644 index 0000000..b2a2919 --- /dev/null +++ b/surefire-integration-tests/src/test/resources/surefire-943-report-content/src/test/java/org/sample/module/My1Test.java @@ -0,0 +1,23 @@ +package org.sample.module; + +import static org.junit.Assert.fail; + +import java.lang.management.ManagementFactory; + +import org.junit.Before; +import org.junit.Test; + +public class My1Test +{ + @Test + public void fails() + { + fail( "Always fails" ); + } + + @Test + public void alwaysSuccessful() + { + + } +} http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/5bfd2717/surefire-integration-tests/src/test/resources/surefire-943-report-content/src/test/java/org/sample/module/My2Test.java ---------------------------------------------------------------------- diff --git a/surefire-integration-tests/src/test/resources/surefire-943-report-content/src/test/java/org/sample/module/My2Test.java b/surefire-integration-tests/src/test/resources/surefire-943-report-content/src/test/java/org/sample/module/My2Test.java new file mode 100644 index 0000000..7f70c76 --- /dev/null +++ b/surefire-integration-tests/src/test/resources/surefire-943-report-content/src/test/java/org/sample/module/My2Test.java @@ -0,0 +1,22 @@ +package org.sample.module; + +import static org.junit.Assert.fail; + +import java.lang.management.ManagementFactory; + +import org.junit.Before; +import org.junit.Test; + +public class My2Test { + @Test + public void fails() + { + fail( "Always fails" ); + } + + @Test + public void alwaysSuccessful() + { + + } +} http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/5bfd2717/surefire-integration-tests/src/test/resources/surefire-943-report-content/src/test/java/org/sample/module/My3Test.java ---------------------------------------------------------------------- diff --git a/surefire-integration-tests/src/test/resources/surefire-943-report-content/src/test/java/org/sample/module/My3Test.java b/surefire-integration-tests/src/test/resources/surefire-943-report-content/src/test/java/org/sample/module/My3Test.java new file mode 100644 index 0000000..bb2a06b --- /dev/null +++ b/surefire-integration-tests/src/test/resources/surefire-943-report-content/src/test/java/org/sample/module/My3Test.java @@ -0,0 +1,22 @@ +package org.sample.module; + +import static org.junit.Assert.fail; + +import java.lang.management.ManagementFactory; + +import org.junit.Before; +import org.junit.Test; + +public class My3Test { + @Test + public void fails() + { + fail( "Always fails" ); + } + + @Test + public void alwaysSuccessful() + { + + } +} http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/5bfd2717/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/NonConcurrentRunListener.java ---------------------------------------------------------------------- diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/NonConcurrentRunListener.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/NonConcurrentRunListener.java index 835f46c..240a40f 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/NonConcurrentRunListener.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/NonConcurrentRunListener.java @@ -24,6 +24,7 @@ import org.apache.maven.surefire.report.ConsoleOutputReceiver; import org.apache.maven.surefire.report.RunListener; import org.apache.maven.surefire.report.SimpleReportEntry; import org.apache.maven.surefire.testset.TestSetFailedException; + import org.junit.runner.Description; import org.junit.runner.Result; import org.junit.runner.notification.Failure; @@ -59,14 +60,14 @@ public class NonConcurrentRunListener protected SimpleReportEntry createReportEntry( Description description ) { - return new SimpleReportEntry( description.getClassName(), description.getClassName(), + return new SimpleReportEntry( description.getClassName(), description.getDisplayName(), (int) ( System.currentTimeMillis() - startTime ) ); } - - public String getClassName( Description description ) + protected SimpleReportEntry createReportEntryForTestSet( Description description ) { - return description.getClass().getSimpleName(); + return new SimpleReportEntry( description.getClassName(), description.getClassName(), + (int) ( System.currentTimeMillis() - startTime ) ); } @Override @@ -78,11 +79,11 @@ public class NonConcurrentRunListener currentTestClass = description.getTestClass(); if ( lastFinishedDescription != null ) { - reporter.testSetCompleted( createReportEntry( lastFinishedDescription ) ); + reporter.testSetCompleted( createReportEntryForTestSet( lastFinishedDescription ) ); lastFinishedDescription = null; } startTime = System.currentTimeMillis(); - reporter.testSetStarting( createReportEntry( description ) ); + reporter.testSetStarting( createReportEntryForTestSet( description ) ); } super.testStarted( description ); } @@ -130,7 +131,7 @@ public class NonConcurrentRunListener { if ( lastFinishedDescription != null ) { - reporter.testSetCompleted( createReportEntry( lastFinishedDescription ) ); + reporter.testSetCompleted( createReportEntryForTestSet( lastFinishedDescription ) ); lastFinishedDescription = null; } }