[ https://jira.codehaus.org/browse/SUREFIRE-865?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kristian Rosenvold closed SUREFIRE-865. --------------------------------------- Resolution: Fixed Fix Version/s: 2.13 Assignee: Kristian Rosenvold Fixed with the ClassDemarcatingRunner issue > surefire 2.12 with parallel=methods does not execute junit 4.7+ tests in > parallel > --------------------------------------------------------------------------------- > > Key: SUREFIRE-865 > URL: https://jira.codehaus.org/browse/SUREFIRE-865 > Project: Maven Surefire > Issue Type: Bug > Components: Junit 4.7+ (parallel) support > Environment: Maven 2.2.1 and 3.0.4, JDK6, JUnit 4.10 > Reporter: Neil Hartner > Assignee: Kristian Rosenvold > Fix For: 2.13 > > Attachments: surefire-parallel-junit.zip > > > parallel=methods with junit does not appear to parallelize junit test > execution in surefire 2.12 or 2.13-SNAPSHOT. parallel=classes works with > 2.12, but parallel=methods only works for me in earlier versions of surefire > like 2.10 and 2.11. I saw an earlier bug related to TestSuite classes but my > tests are not using @Test. I have attached a very simple maven project that > demonstrates this issue. It has 2 test classes with 2 tests each where each > test calls Thread.sleep() for 4-8 seconds. Here are a few build commands to > reproduce the bug: > First run: mvn test -Dsurefire-version=2.11 -Dparallel=methods > Notice that in 2.11 the tests execute in two threads and in parallel. Total > execution time on my box was 15s. > Then run: mvn test -Dsurefire-version=2.12 -Dparallel=methods > Notice that in 2.12 the tests execute in the same main thread. Total > execution time on my box was 26s. > Finally run: mvn test -Dsurefire-version=2.12 -Dparallel=classes > Notice that parallel=classes does correctly execute tests in two threads and > in parallel. Total execution time on my box was 17s. > --- > Here is output from my machine when running these commands... > Run: > mvn test -Dsurefire-version=2.11 -Dparallel=methods > OUTPUT: > Concurrency config is parallel='methods', perCoreThreadCount=true, > threadCount=2, useUnlimitedThreads=false > Running com.overstock.BarTest > Fri May 11 11:26:34 MDT 2012: BarTest calling sleep(5) in thread > pool-1-thread-2 > Fri May 11 11:26:34 MDT 2012: BarTest calling sleep(4) in thread > pool-1-thread-1 > Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 9.033 sec > Running com.overstock.FooTest > Fri May 11 11:26:39 MDT 2012: FooTest calling sleep(7) in thread > pool-1-thread-3 > Fri May 11 11:26:39 MDT 2012: FooTest calling sleep(8) in thread > pool-1-thread-4 > Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 15.008 sec > Results : > Tests run: 4, Failures: 0, Errors: 0, Skipped: 0 > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD SUCCESSFUL > [INFO] > ------------------------------------------------------------------------ > [INFO] Total time: 15 seconds > Run: > mvn test -Dsurefire-version=2.12 -Dparallel=methods > OUTPUT: > Concurrency config is parallel='methods', perCoreThreadCount=true, > threadCount=2, useUnlimitedThreads=false > Running com.overstock.BarTest > Fri May 11 11:25:53 MDT 2012: BarTest calling sleep(4) in thread main > Fri May 11 11:25:58 MDT 2012: BarTest calling sleep(5) in thread main > Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 9.017 sec > Running com.overstock.FooTest > Fri May 11 11:26:03 MDT 2012: FooTest calling sleep(7) in thread main > Fri May 11 11:26:10 MDT 2012: FooTest calling sleep(8) in thread main > Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 15.003 sec > Results : > Tests run: 4, Failures: 0, Errors: 0, Skipped: 0 > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD SUCCESSFUL > [INFO] > ------------------------------------------------------------------------ > [INFO] Total time: 26 seconds > Run: > mvn test -Dsurefire-version=2.12 -Dparallel=classes > OUTPUT: > Concurrency config is parallel='classes', perCoreThreadCount=true, > threadCount=2, useUnlimitedThreads=false > Running com.overstock.BarTest > Fri May 11 11:27:38 MDT 2012: BarTest calling sleep(4) in thread > pool-1-thread-1 > Fri May 11 11:27:42 MDT 2012: BarTest calling sleep(5) in thread > pool-1-thread-1 > Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 9.016 sec > Running com.overstock.FooTest > Fri May 11 11:27:38 MDT 2012: FooTest calling sleep(7) in thread > pool-1-thread-2 > Fri May 11 11:27:45 MDT 2012: FooTest calling sleep(8) in thread > pool-1-thread-2 > Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 15.016 sec > Results : > Tests run: 4, Failures: 0, Errors: 0, Skipped: 0 > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD SUCCESSFUL > [INFO] > ------------------------------------------------------------------------ > [INFO] Total time: 17 seconds -- 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