maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tibor Digana (JIRA)" <j...@codehaus.org>
Subject [jira] (SUREFIRE-1055) Parallel JUnit does not run all test methods with parallel=classesAndMethods perCoreThreadCount=false useUnlimitedThreads=true and threadCountMethods specified
Date Tue, 11 Feb 2014 08:13:57 GMT

    [ https://jira.codehaus.org/browse/SUREFIRE-1055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=341205#comment-341205
] 

Tibor Digana edited comment on SUREFIRE-1055 at 2/11/14 2:13 AM:
-----------------------------------------------------------------

@Chris
I have seen this issue as well.
Before the version 2.16 we have not proper parallelism. I implemented new parallelism and
tested.
Since the old parallelism was not properly enabled you could not see this issue.
Now you have feature with concurrent execution, and the issue you can see in log should not
be real because the test-methods are executed but their invocation is not properly handled
by the logs.
In order to prove these symptoms put a little code in every test method and lunch mvn test
again. This means print test-method name by an ordinal System.out.println(...) in it. Make
sure every name of the particular method is unique in whole project. Then count them in your
custom logs. Alternatively you can initialize an atomic counter, e.g. AtomicInteger, in a
singleton and print post-increment value in every test-method. If you get deterministic number
by every test round, the methods are called as expected but not printed by the plugin.
I guess you will have positive answer which means that it is known issue.


was (Author: tibor17):
@Chris
I have seen this issue as well.
Before the version 2.16 we have not proper parallelism. I implemented new parallelism and
tested.
Since the old parallelism was not properly enabled you could not see this issue.
Now you have feature with concurrent execution, and the issue you can see in log should not
be real because the test-methods are executed but their invocation is not properly handled
by the logs.
In order to prove these symptoms put a little code in every test method and lunch mvn test
again. This means print test-method name by an ordinal System.out.println(...) in it. Make
sure every name of the particular method is unique in whole project. Then count them in your
custom logs. Alternatively you can initialize an atomic counter, e.g. AtomicInteger, in a
singleton and print post-increment value in every test-method. If you get deterministic number
by every test round, the methods are called as expected but not printed by the plugin.
I guess you will have positive answer which means that the issue still exists.

> Parallel JUnit does not run all test methods with parallel=classesAndMethods perCoreThreadCount=false
useUnlimitedThreads=true and threadCountMethods specified
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SUREFIRE-1055
>                 URL: https://jira.codehaus.org/browse/SUREFIRE-1055
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Junit 4.7+ (parallel) support, Maven Failsafe Plugin, Maven Surefire
Plugin
>    Affects Versions: 2.16
>            Reporter: Chris Hansen
>         Attachments: surefire-output.txt
>
>
> Some test methods are skipped at random with the below configuration. When test methods
are skipped in this way, only one method in the class runs. Running tests repeatedly with
no code change often yields a different number of tests with each run (e.g. see the attached
surefire-output.txt). Tests that take longer to run are less likely to be affected. This affects
version 2.16 of Surefire and Failsafe equally.
> Here is a simple test project which reproduces the issue: https://github.com/hansenc/SUREFIRE-1055
> It has a few simple test classes with a naming convention for how many test methods are
in each class (e.g. Methods4Test has 4 test methods).
> {code:xml}
> <plugin>
>     <groupId>org.apache.maven.plugins</groupId>
>     <artifactId>maven-surefire-plugin</artifactId>
>     <version>2.16</version>
>     <configuration>
>         <parallel>classesAndMethods</parallel>
>         <perCoreThreadCount>false</perCoreThreadCount>
>         <useUnlimitedThreads>true</useUnlimitedThreads>
>         <threadCountMethods>3</threadCountMethods>
>     </configuration>
> </plugin>
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)

Mime
View raw message