You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Guillermo GARCIA OCHOA (JIRA)" <ji...@codehaus.org> on 2012/06/18 18:53:21 UTC

[jira] (SUREFIRE-869) Parallel test execution on class level runs not all tests but some twice

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

Guillermo GARCIA OCHOA commented on SUREFIRE-869:
-------------------------------------------------

I'm getting exactly the same issue with this configuration:
{code}
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.12</version>
    <configuration>
      <forkMode>perthread</forkMode>
      <threadCount>2</threadCount>
    </configuration>
</plugin>
{code}
                
> Parallel test execution on class level runs not all tests but some twice
> ------------------------------------------------------------------------
>
>                 Key: SUREFIRE-869
>                 URL: https://jira.codehaus.org/browse/SUREFIRE-869
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Junit 4.7+ (parallel) support
>    Affects Versions: 2.12
>         Environment: Apache Maven 3.0.4 (r1232337; 2012-01-17 09:44:56+0100)
> Maven home: /opt/local/share/java/maven3
> Java version: 1.7.0_04, vendor: Oracle Corporation
> Java home: /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre
> Default locale: en_US, platform encoding: UTF-8
> OS name: "mac os x", version: "10.7.4", arch: "x86_64", family: "mac"
> JUnit 4.10
>            Reporter: Martin Burger
>            Priority: Blocker
>         Attachments: parallel-tests.tgz
>
>
> When I run JUnit tests in parallel on the class level, Surefire behaves somehow erratically. For instance, having test classes TestA and TestB, Surefire sometimes runs TestA twice, TestB twice at other times - but never TestA and TestB in parallel.
> I attached a simple Maven project that helps reproduce this issue. Via {{mvn test -P sequential}} you can execute two test classes sequentially:
> {noformat}
> ...
> -------------------------------------------------------
>  T E S T S
> -------------------------------------------------------
> Running mavendebug.TestAppFirstTest
> -----------------> TestAppFirstTest.test()
> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.036 sec
> Running mavendebug.TestAppSecondTest
> -----------------> TestAppSecondTest.test()
> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
> Results :
> Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
> ...
> {noformat}
> Running {{mvn test}} instead runs tests in parallel:
> {noformat}
> ...
> -------------------------------------------------------
>  T E S T S
> -------------------------------------------------------
> -------------------------------------------------------
>  T E S T S
> -------------------------------------------------------
> Concurrency config is parallel='classes', perCoreThreadCount=false, threadCount=4, useUnlimitedThreads=false
> Concurrency config is parallel='classes', perCoreThreadCount=false, threadCount=4, useUnlimitedThreads=false
> Running mavendebug.TestAppSecondTest
> Running mavendebug.TestAppSecondTest
> -----------------> TestAppSecondTest.test()
> -----------------> TestAppSecondTest.test()
> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec
> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec
> Results :
> Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
> ...
> {noformat}
> As you can see, TestAppSecondTest is executed twice, while test TestAppFirstTest is not executed at all.
> Please note: I chose Blocker as priority as this caused (1) that our extensive test suite was not executed completely during the last weeks which we only discovered today, and (2) that caused tests that run against a database to fail with unexpected constraint violations just because those tests where executed twice in parallel.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira