Blob Blame History Raw
From 21890515f3eeba73065b79b6a65678ec1e2a821d Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Mon, 27 Apr 2020 10:45:30 +0200
Subject: [PATCH 3/3] Disable JUnit 4.8 test grouping

---
 .../surefire/junitcore/JUnitCoreProvider.java | 25 +++--------------
 .../maven/surefire/testng/TestNGExecutor.java | 27 -------------------
 2 files changed, 3 insertions(+), 49 deletions(-)

diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
index 7c74e8b86..c86bb276c 100644
--- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
+++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
@@ -25,7 +25,6 @@
 import org.apache.maven.surefire.common.junit4.JUnit4RunListener;
 import org.apache.maven.surefire.common.junit4.JUnitTestFailureListener;
 import org.apache.maven.surefire.common.junit4.Notifier;
-import org.apache.maven.surefire.common.junit48.FilterFactory;
 import org.apache.maven.surefire.common.junit48.JUnit48Reflector;
 import org.apache.maven.surefire.common.junit48.JUnit48TestChecker;
 import org.apache.maven.surefire.providerapi.AbstractProvider;
@@ -47,6 +46,7 @@
 import java.util.concurrent.ConcurrentHashMap;
 
 import static org.apache.maven.surefire.booter.CommandReader.getReader;
+import static org.apache.maven.surefire.common.junit4.JUnit4ProviderUtil.createMatchAnyDescriptionFilter;
 import static org.apache.maven.surefire.common.junit4.JUnit4ProviderUtil.generateFailingTestDescriptions;
 import static org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactory.createCustomListeners;
 import static org.apache.maven.surefire.common.junit4.Notifier.pureNotifier;
@@ -126,7 +126,7 @@ public RunResult invoke( Object forkTestSet )
             new Notifier( createRunListener( reporterFactory, consoleStream ), getSkipAfterFailureCount() );
         // startCapture() called in createRunListener() in prior to setTestsToRun()
 
-        Filter filter = jUnit48Reflector.isJUnit48Available() ? createJUnit48Filter() : null;
+        Filter filter = null;
 
         if ( testsToRun == null )
         {
@@ -168,8 +168,7 @@ public RunResult invoke( Object forkTestSet )
                 {
                     Set<Description> failures = generateFailingTestDescriptions( testFailureListener.getAllFailures() );
                     testFailureListener.reset();
-                    FilterFactory filterFactory = new FilterFactory( testClassLoader );
-                    Filter failureDescriptionFilter = filterFactory.createMatchAnyDescriptionFilter( failures );
+                    Filter failureDescriptionFilter = createMatchAnyDescriptionFilter( failures );
                     rerunCore.execute( testsToRun, failureDescriptionFilter );
                 }
             }
@@ -270,24 +269,6 @@ private boolean isParallelTypes()
         return jUnitCoreParameters.isParallelClasses() || jUnitCoreParameters.isParallelSuites();
     }
 
-    private Filter createJUnit48Filter()
-    {
-        final FilterFactory factory = new FilterFactory( testClassLoader );
-        Map<String, String> props = providerParameters.getProviderProperties();
-        Filter groupFilter = factory.canCreateGroupFilter( props ) ? factory.createGroupFilter( props ) : null;
-        TestListResolver methodFilter = optionallyWildcardFilter( testResolver );
-        boolean onlyGroups = methodFilter.isEmpty() || methodFilter.isWildcard();
-        if ( onlyGroups )
-        {
-            return groupFilter;
-        }
-        else
-        {
-            Filter jUnitMethodFilter = factory.createMethodFilter( methodFilter );
-            return groupFilter == null ? jUnitMethodFilter : factory.and( groupFilter, jUnitMethodFilter );
-        }
-    }
-
     private TestsToRun scanClassPath()
     {
         TestsToRun scanned = scanResult.applyFilter( scannerFilter, testClassLoader );
diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java
index 6bc30a300..05c55f55a 100644
--- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java
+++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java
@@ -237,36 +237,9 @@ private static XmlMethodSelector createMethodNameFilteringSelector( TestListReso
     private static XmlMethodSelector createGroupMatchingSelector( Map<String, String> options )
         throws TestSetFailedException
     {
-        final String groups = options.get( ProviderParameterNames.TESTNG_GROUPS_PROP );
-        final String excludedGroups = options.get( ProviderParameterNames.TESTNG_EXCLUDEDGROUPS_PROP );
-
-        if ( groups == null && excludedGroups == null )
         {
             return null;
         }
-
-        // the class is available in the testClassPath
-        final String clazzName = "org.apache.maven.surefire.testng.utils.GroupMatcherMethodSelector";
-        try
-        {
-            Class<?> clazz = Class.forName( clazzName );
-
-            // HORRIBLE hack, but TNG doesn't allow us to setup a method selector instance directly.
-            Method method = clazz.getMethod( "setGroups", String.class, String.class );
-            method.invoke( null, groups, excludedGroups );
-        }
-        catch ( Exception e )
-        {
-            throw new TestSetFailedException( e.getMessage(), e );
-        }
-
-        XmlMethodSelector xms = new XmlMethodSelector();
-
-        xms.setName( clazzName );
-        // looks to need a high value
-        xms.setPriority( 9999 );
-
-        return xms;
     }
 
     static void run( List<String> suiteFiles, String testSourceDirectory,
-- 
2.25.2