You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2019/10/28 23:17:38 UTC

[maven-surefire] branch master updated: [SUREFIRE-1701] Use literal names instead of display names for classes/methods for test reruns

This is an automated email from the ASF dual-hosted git repository.

tibordigana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git


The following commit(s) were added to refs/heads/master by this push:
     new c391947  [SUREFIRE-1701] Use literal names instead of display names for classes/methods for test reruns
c391947 is described below

commit c391947070c9514c1d3a5ba45762329d0beb0f39
Author: Matt <Co...@users.noreply.github.com>
AuthorDate: Mon Oct 28 19:17:32 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()
         {