maven-surefire/0002-Disable-JUnit-4.8-test-grouping.patch
2023-05-05 22:08:10 +02:00

119 lines
6.0 KiB
Diff

From e953698dd68a09467fcaa4a390b61c580caefa96 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Mon, 27 Apr 2020 10:45:30 +0200
Subject: [PATCH 2/4] 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 7ed483426..1ffd826db 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
@@ -40,7 +40,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.junit.runner.Description;
@@ -51,6 +50,7 @@
import static org.apache.maven.surefire.api.report.RunMode.RERUN_TEST_AFTER_FAILURE;
import static org.apache.maven.surefire.api.testset.TestListResolver.optionallyWildcardFilter;
import static org.apache.maven.surefire.api.util.TestsToRun.fromClass;
+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 )
Notifier notifier = new Notifier( listener, getSkipAfterFailureCount() );
// startCapture() called in createRunListener() in prior to setTestsToRun()
- Filter filter = jUnit48Reflector.isJUnit48Available() ? createJUnit48Filter() : null;
+ Filter filter = null;
if ( testsToRun == null )
{
@@ -169,8 +169,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 );
}
}
@@ -271,24 +270,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 7ed1719a8..07d3ad33c 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
@@ -278,36 +278,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.35.1