Disable JUnit 4.8 test grouping

This commit is contained in:
Mikolaj Izdebski 2020-04-27 10:48:18 +02:00
parent 015b74e0ae
commit a89fc76187
4 changed files with 134 additions and 9 deletions

View File

@ -1,7 +1,7 @@
From 69c97f47a7bbec601b407cd2cd81aee64507e562 Mon Sep 17 00:00:00 2001
From 14196b58bc1d96d76636914b575dc22b7cc94b1a Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Mon, 10 Jul 2017 10:37:50 +0200
Subject: [PATCH 1/2] Port to TestNG 6.11
Subject: [PATCH 1/3] Port to TestNG 6.11
---
surefire-providers/surefire-testng/pom.xml | 3 +--
@ -9,7 +9,7 @@ Subject: [PATCH 1/2] Port to TestNG 6.11
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/surefire-providers/surefire-testng/pom.xml b/surefire-providers/surefire-testng/pom.xml
index 49e75b6e..a9db4a8d 100644
index 49e75b6ea..a9db4a8d9 100644
--- a/surefire-providers/surefire-testng/pom.xml
+++ b/surefire-providers/surefire-testng/pom.xml
@@ -51,8 +51,7 @@
@ -23,7 +23,7 @@ index 49e75b6e..a9db4a8d 100644
</dependency>
</dependencies>
diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java
index e9667316..7021ef56 100644
index e9667316b..7021ef561 100644
--- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java
+++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java
@@ -63,7 +63,7 @@ public void configure( TestNG testng, Map<String, String> options )
@ -36,5 +36,5 @@ index e9667316..7021ef56 100644
@Override
--
2.20.1
2.25.2

View File

@ -1,14 +1,14 @@
From a96b8f5dd6d7fc51d9056c93bd08635e06957ea5 Mon Sep 17 00:00:00 2001
From 6a94c7674f844218752827f2b62de629691fcf39 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek@redhat.com>
Date: Fri, 16 Mar 2018 13:45:01 +0100
Subject: [PATCH 2/2] Port to current maven-shared-utils
Subject: [PATCH 2/3] Port to current maven-shared-utils
---
.../plugin/surefire/report/StatelessXmlReporter.java | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
index b89c4e9b..8cf0b60c 100644
index b89c4e9b0..8cf0b60c3 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
@@ -326,7 +326,7 @@ private static File getReportFile( ReportEntry report, File reportsDirectory, St
@ -66,5 +66,5 @@ index b89c4e9b..8cf0b60c 100644
xmlWriter.startElement( "properties" );
for ( final Entry<String, String> entry : systemProperties.entrySet() )
--
2.20.1
2.25.2

View File

@ -0,0 +1,118 @@
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

View File

@ -14,6 +14,7 @@ Source2: http://junit.sourceforge.net/cpl-v10.html
Patch1: 0001-Port-to-TestNG-6.11.patch
Patch2: 0002-Port-to-current-maven-shared-utils.patch
Patch3: 0003-Disable-JUnit-4.8-test-grouping.patch
BuildRequires: maven-local
BuildRequires: mvn(com.google.code.findbugs:jsr305)
@ -106,6 +107,7 @@ cp -p %{SOURCE2} .
%patch1 -p1
%patch2 -p1
%patch3 -p1
# Disable strict doclint
sed -i /-Xdoclint:all/d pom.xml
@ -113,7 +115,12 @@ sed -i /-Xdoclint:all/d pom.xml
%pom_disable_module maven-surefire-report-plugin
%pom_disable_module surefire-report-parser
%pom_disable_module surefire-shadefire
%pom_disable_module surefire-grouper
%pom_remove_dep :surefire-grouper surefire-providers/common-junit48
%pom_remove_dep :surefire-grouper surefire-providers/surefire-testng-utils
rm surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/{FilterFactory,GroupMatcherCategoryFilter}.java
rm surefire-providers/surefire-testng-utils/src/main/java/org/apache/maven/surefire/testng/utils/GroupMatcherMethodSelector.java
%pom_remove_dep -r org.apache.maven.surefire:surefire-shadefire