From b744c4907e374e531136d9ca6a80d0867aff1778 Mon Sep 17 00:00:00 2001 From: Scott Babcock Date: Thu, 7 Apr 2022 17:59:22 -0700 Subject: [PATCH] Allow all supported values of [parallel] option --- .../testng/conf/TestNG740Configurator.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/TestNG740Configurator.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/TestNG740Configurator.java index f68cf2bec8..b3e4e12c37 100644 --- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/TestNG740Configurator.java +++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/TestNG740Configurator.java @@ -50,14 +50,19 @@ public void configure( XmlSuite suite, Map options ) String parallel = options.get( PARALLEL_PROP ); if ( parallel != null ) { - if ( !"methods".equalsIgnoreCase( parallel ) && !"classes".equalsIgnoreCase( parallel ) ) + Class enumClass = tryLoadClass( XmlSuite.class.getClassLoader(), "org.testng.xml.XmlSuite$ParallelMode" ); + if ( enumClass != null ) { - throw new TestSetFailedException( "Unsupported TestNG parallel setting: " - + parallel + " ( only METHODS or CLASSES supported )" ); + try + { + Enum parallelEnum = Enum.valueOf( enumClass, parallel.toUpperCase() ); + invokeSetter( suite, "setParallel", enumClass, parallelEnum ); + } + catch ( IllegalArgumentException e ) + { + throw new TestSetFailedException( "Unsupported TestNG parallel setting: " + parallel, e ); + } } - Class enumClass = tryLoadClass( XmlSuite.class.getClassLoader(), "org.testng.xml.XmlSuite$ParallelMode" ); - Enum parallelEnum = Enum.valueOf( enumClass, parallel.toUpperCase() ); - invokeSetter( suite, "setParallel", enumClass, parallelEnum ); } String dataProviderThreadCount = options.get( "dataproviderthreadcount" );