This is an automated email from the ASF dual-hosted git repository. tibordigana pushed a commit to branch SUREFIRE-1701 in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
commit 4a0fd6f8a4a58ca3756be9d8f880bc63903e8759 Author: Col-E <mcol...@gmu.edu> AuthorDate: Tue Oct 22 09:44:52 2019 -0400 [SUREFIRE-1701] Use literal names instead of display names for classes/methods for test reruns --- .../junitplatform/JUnitPlatformProvider.java | 7 ++--- .../junitplatform/JUnitPlatformProviderTest.java | 31 +++++++++++++++++++++- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProvider.java b/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProvider.java index 6c6c8e9..f9a650d 100644 --- a/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProvider.java +++ b/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProvider.java @@ -43,6 +43,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Properties; +import java.util.HashSet; import java.util.logging.Logger; import org.apache.maven.surefire.providerapi.AbstractProvider; @@ -187,12 +188,12 @@ public class JUnitPlatformProvider LauncherDiscoveryRequestBuilder builder = request().filters( filters ).configurationParameters( configurationParameters ); // Iterate over recorded failures - for ( TestIdentifier identifier : adapter.getFailures().keySet() ) + for ( TestIdentifier identifier : new HashSet<>( adapter.getFailures().keySet() ) ) { // Extract quantified test name data String[] classMethodName = adapter.toClassMethodNameWithoutPlan( identifier ); - String className = classMethodName[1]; - String methodName = classMethodName[3]; + String className = classMethodName[0]; + String methodName = classMethodName[2]; // Add filter for the specific failing method builder.selectors( selectMethod( className, methodName ) ); } diff --git a/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProviderTest.java b/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProviderTest.java index feb169c..954bb12 100644 --- a/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProviderTest.java +++ b/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProviderTest.java @@ -43,6 +43,7 @@ import java.io.PrintStream; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; @@ -211,6 +212,15 @@ public class JUnitPlatformProviderTest assertEquals( 1, summary.getTestsSucceededCount() ); assertEquals( 1, summary.getTestsAbortedCount() ); assertEquals( 3, summary.getTestsFailedCount() ); + Set<String> failDisplays = new HashSet<>(); + for ( TestExecutionSummary.Failure failure : summary.getFailures() ) + { + failDisplays.add( failure.getTestIdentifier().getDisplayName() ); + } + assertEquals( 3, failDisplays.size() ); + assertTrue( failDisplays.contains( "Fails twice" ) ); + assertTrue( failDisplays.contains( "testAlwaysFail()" ) ); + assertTrue( failDisplays.contains( "testAlwaysError()" ) ); // Should rerun both of the failures summary = executionListener.summaries.get( 1 ); @@ -220,6 +230,15 @@ public class JUnitPlatformProviderTest assertEquals( 0, summary.getTestsSucceededCount() ); assertEquals( 0, summary.getTestsAbortedCount() ); assertEquals( 3, summary.getTestsFailedCount() ); + failDisplays.clear(); + for ( TestExecutionSummary.Failure failure : summary.getFailures() ) + { + failDisplays.add( failure.getTestIdentifier().getDisplayName() ); + } + assertEquals( 3, failDisplays.size() ); + assertTrue( failDisplays.contains( "Fails twice" ) ); + assertTrue( failDisplays.contains( "testAlwaysFail()" ) ); + assertTrue( failDisplays.contains( "testAlwaysError()" ) ); // now only one failure should remain summary = executionListener.summaries.get( 2 ); @@ -229,6 +248,14 @@ public class JUnitPlatformProviderTest assertEquals( 1, summary.getTestsSucceededCount() ); assertEquals( 0, summary.getTestsAbortedCount() ); assertEquals( 2, summary.getTestsFailedCount() ); + failDisplays.clear(); + for ( TestExecutionSummary.Failure failure : summary.getFailures() ) + { + failDisplays.add( failure.getTestIdentifier().getDisplayName() ); + } + assertEquals( 2, failDisplays.size() ); + assertTrue( failDisplays.contains( "testAlwaysFail()" ) ); + assertTrue( failDisplays.contains( "testAlwaysError()" ) ); } @Test @@ -834,6 +861,7 @@ public class JUnitPlatformProviderTest { static int count; + @org.junit.jupiter.api.DisplayName( "Always passes" ) @org.junit.jupiter.api.Test void testPass() { @@ -843,7 +871,7 @@ public class JUnitPlatformProviderTest void testAborted() { assumeFalse( true ); - throw new IllegalStateException( "this exception should neve happen" ); + throw new IllegalStateException( "this exception should never happen" ); } @org.junit.jupiter.api.Test @@ -865,6 +893,7 @@ public class JUnitPlatformProviderTest throw new IllegalStateException( "this test should be never called" ); } + @org.junit.jupiter.api.DisplayName( "Fails twice" ) @org.junit.jupiter.api.Test void testFailTwice() {