From e953698dd68a09467fcaa4a390b61c580caefa96 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski 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 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 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 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 suiteFiles, String testSourceDirectory, -- 2.35.1