[ 
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

        

Reply via email to