Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.8, 2.8.1
-
Fix Version/s: None
-
Component/s: Junit 4.7+ (parallel) support
-
Labels:None
-
Complexity:Intermediate
-
Number of attachments :
Description
Here is a simple testcase.
POM file:
<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>
TestSuite.java
import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses( { ParallelTest.class, ParallelTest2.class }) public class TestSuite { }
ParallelTest.java
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"); } }
ParallelTest2.java is identical except that log output contains ParallelTest2 instead of ParallelTest.
Actual Output:
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 secResults :
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
Problem: methods second() and third() are never run for either ParallelTest or ParallelTest2.
Issue Links
- is related to
-
SUREFIRE-797
Parallel junit does not run in parallel when a Suite is used at the top level
-
Also, the tests don't actually run in parallel. I believe this justifies raising the priority of this bug...