[ http://jira.codehaus.org/browse/SUREFIRE-747?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=270601#comment-270601 ]
Gili commented on SUREFIRE-747: ------------------------------- Agreed but I've yet to see parallel methods work properly. When I remove the TestSuite and run it against my actual unit tests I am running into a whole bunch of problems involving slf4j on the one hand, and problems making HTTP requests on the other. Now, it could very well be that slf4j and my HTTP test framework are at fault but I've seen enough stuff broken in parallel methods to believe that the problem lies there. In fact, I remember running 2.8.1 (not 2.8.2-SNAPSHOT) and getting back a negative value for total test time. This seems to be fixed in 2.8.2-SNAPSHOT. I'll try providing testcases for all these cases but you need to do some serious testing on your end as well. Something is fundamentally broken here. > Parallel method execution skips Tests > ------------------------------------- > > Key: SUREFIRE-747 > URL: http://jira.codehaus.org/browse/SUREFIRE-747 > Project: Maven Surefire > Issue Type: Bug > Components: Junit 4.7+ (parallel) support > Affects Versions: 2.8, 2.8.1 > Reporter: Gili > Assignee: Kristian Rosenvold > > Here is a simple testcase. > POM file: > {code} > <plugin> > <artifactId>maven-surefire-plugin</artifactId> > <version>2.8.2-SNAPSHOT</version> > <configuration> > <includes> > > <include>**/TestSuite.java</include> > </includes> > <parallel>methods</parallel> > </configuration> > </plugin> > </plugins> > {code} > TestSuite.java > {code} > import org.junit.runner.RunWith; > import org.junit.runners.Suite; > @RunWith(Suite.class) > @Suite.SuiteClasses( > { > ParallelTest.class, > ParallelTest2.class > }) > public class TestSuite > { > } > {code} > ParallelTest.java > {code} > public class ParallelTest > { > public ParallelTest() > { > System.out.println("ParallelTest.constructor"); > } > > @Before > public void setUp() > { > System.out.println("ParallelTest.setUp"); > } > @After > public void tearDown() > { > System.out.println("ParallelTest.tearDown"); > } > @Test > public void first() throws InterruptedException > { > System.out.println("begin ParallelTest.first"); > Thread.sleep(1000); > System.out.println("end ParallelTest.first"); > } > @Test > public void second() throws InterruptedException > { > System.out.println("begin ParallelTest.second"); > Thread.sleep(1000); > System.out.println("end ParallelTest.second"); > } > @Test > public void third() throws InterruptedException > { > System.out.println("begin ParallelTest.third"); > Thread.sleep(1000); > System.out.println("end ParallelTest.third"); > } > } > {code} > ParallelTest2.java is identical except that log output contains ParallelTest2 > instead of ParallelTest. > Actual Output: > {quote} > Concurrency config is parallel='methods', perCoreThreadCount=true, > threadCount=2, useUnlimitedThreads=false > Running com.holdmyspot.health.server.ParallelTest > ParallelTest.constructor > ParallelTest.setUp > begin ParallelTest.first > end ParallelTest.first > ParallelTest.tearDown > Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.014 sec > Running com.holdmyspot.health.server.ParallelTest2 > ParallelTest2.constructor > ParallelTest2.setUp > begin ParallelTest2.first > end ParallelTest2.first > ParallelTest2.tearDown > Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.014 sec > Results : > Tests run: 2, Failures: 0, Errors: 0, Skipped: 0 > {quote} > Problem: methods second() and third() are never run for either ParallelTest > or ParallelTest2. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira