[
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