[ http://jira.codehaus.org/browse/SUREFIRE-747?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=270604#comment-270604 ]
Kristian Rosenvold commented on SUREFIRE-747: --------------------------------------------- If you had bothered to check the surefire source code, which you obviously haven't, you'd see that it's fairly well tested code. The parallel stuff too. But you found a bug with Suite and methods parallel, which you incidentally reported quite well; thanks for the report; those two are simply not going to work in combination as-is (I'm unsure about *all* the parallel stuff and the suite, you're the first person I've seen trying it out). Due to some design issues in the Http stack itself, http-clients are typically some of the first failure signs of non-threadsafe code. That is *your* code, which is probably the only thing "fundamentally broken" in this context. But please be assured that any relevant failing test cases you supply will be examined promptly. > 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