[ https://issues.apache.org/jira/browse/SUREFIRE-1398?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tibor Digana updated SUREFIRE-1398: ----------------------------------- Fix Version/s: 2.22.3 > TestNG test fails when both JUnitCore provider and TestNG provider are on > classpath > ----------------------------------------------------------------------------------- > > Key: SUREFIRE-1398 > URL: https://issues.apache.org/jira/browse/SUREFIRE-1398 > Project: Maven Surefire > Issue Type: Bug > Components: Maven Surefire Plugin, TestNG support > Affects Versions: 2.20 > Reporter: Matous Jobanek > Assignee: Slawomir Jaranowski > Priority: Major > Fix For: 2.22.3, 3.0.0-M6 > > > When both JUnitCore and TestNG providers are on classpath: > {code:xml} > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-surefire-plugin</artifactId> > <version>2.20</version> > <dependencies> > <dependency> > <groupId>org.apache.maven.surefire</groupId> > <artifactId>surefire-junit47</artifactId> > <version>2.20</version> > </dependency> > <dependency> > <groupId>org.apache.maven.surefire</groupId> > <artifactId>surefire-testng</artifactId> > <version>2.20</version> > </dependency> > </dependencies> > </plugin> > {code} > then the TestNG execution fails with a message: > {noformat} > Configuring TestNG with: TestNG60Configurator > Cannot use a threadCount parameter less than 1; 1 > 0 > Usage: <main class> [options] The XML suite files to run > Options: > -configfailurepolicy > Configuration failure policy (skip or continue) > -d > Output directory > -dataproviderthreadcount > Number of threads to use when running data providers > -excludegroups > Comma-separated list of group names to exclude > -groups > Comma-separated list of group names to be run > -junit > JUnit mode > Default: false > -listener > List of .class files or list of class names implementing ITestListener > or > ISuiteListener > -methods > Comma separated of test methods > Default: [] > -methodselectors > List of .class files or list of class names implementing > IMethodSelector > -mixed > Mixed mode - autodetect the type of current test and run it with > appropriate runner > Default: false > -objectfactory > List of .class files or list of class names implementing > ITestRunnerFactory > -parallel > Parallel mode (methods, tests or classes) > Possible Values: [tests, methods, classes, instances, none, true, > false] > -port > The port > -reporter > Extended configuration for custom report listener > -suitename > Default name of test suite, if not specified in suite definition file > or > source code > -suitethreadpoolsize > Size of the thread pool to use to run suites > Default: 1 > -testclass > The list of test classes > -testjar > A jar file containing the tests > -testname > Default name of test, if not specified in suitedefinition file or > source > code > -testnames > The list of test names to run > -testrunfactory, -testRunFactory > The factory used to create tests > -threadcount > Number of threads to use when running tests in parallel > -usedefaultlisteners > Whether to use the default listeners > Default: true > -log, -verbose > Level of verbosity > -xmlpathinjar > The full path to the xml file inside the jar file (only valid if > -testjar > was specified) > Default: testng.xml > {noformat} > The same behavior occurs when instead of these two providers I use my own > dynamic provider and delegate the execution to the TestNG provider. > The cause of the behavior is a combination of the method > [convertJunitCoreParameters()|https://github.com/apache/maven-surefire/blob/master/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java#L1289] > and the TestNG provider. > The method is called for > [JunitCoreProvider|https://github.com/apache/maven-surefire/blob/master/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java#L2696] > and sets the thread count to the current value (no matter if it is set or > not). In case that it is not set, then the value is 0, which causes the > before mentioned failure when {{TestNGProvider}} is being executed. > The same in case of > [DynamicProvider|https://github.com/apache/maven-surefire/blob/master/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java#L2745] > In the description of the parameter > [threadCount|http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#threadCount], > there is written that it only makes sense to use in conjunction with the > parallel parameter. So, I would propose to set the parameter only when the > parameter {{parallel}} is set. -- This message was sent by Atlassian Jira (v8.20.1#820001)