maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SUREFIRE-1398) TestNG test fails when both JUnitCore provider and TestNG provider are on classpath
Date Wed, 26 Jul 2017 07:52:02 GMT

    [ https://issues.apache.org/jira/browse/SUREFIRE-1398?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16101289#comment-16101289
] 

ASF GitHub Bot commented on SUREFIRE-1398:
------------------------------------------

Github user MatousJobanek commented on the issue:

    https://github.com/apache/maven-surefire/pull/160
  
    Sorry, I didn't notice that the parameter is used also in other cases.
    I changed the commit to set the `threadCount` only when it is a positive value also in
case of JUnit - in the same way as it is done in case of TestNG


> 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
>
> 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
(v6.4.14#64029)

Mime
View raw message