[ https://jira.codehaus.org/browse/SUREFIRE-1059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=340731#comment-340731 ]
Andreas Gudian commented on SUREFIRE-1059: ------------------------------------------ Coul this be the same as SUREFIRE-1048? > Running tests in parallel seems to ignore threadCount > ----------------------------------------------------- > > Key: SUREFIRE-1059 > URL: https://jira.codehaus.org/browse/SUREFIRE-1059 > Project: Maven Surefire > Issue Type: Bug > Affects Versions: 2.16 > Reporter: Henryk Sarat > > I'm trying to run 6 tests in parallel in 2 threads. However, it seems like as > man threads launch at one time instead of just 2. My proof here is via the > Thread Id that I print out and because the test finishes in around 18seconds. > I expect the test to finish in about 38 seconds. I got to this number because > I have 6 methods that sleep for 10 seconds each. If 2 threads run in > parallel, then the total run time should be 6methods/2threads = 30 seconds > (there there is about 8 seconds of build time of everything else). Am I doing > something wrong? Or has an update over the years broke this in some way? > POM File: > {code} > <build> > <resources> > <resource> > <directory>src/main/resources</directory> > <filtering>true</filtering> > </resource> > </resources> > <plugins> > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-surefire-plugin</artifactId> > <version>2.16</version> > <configuration> > <parallel>methods</parallel> > <threadCount>2</threadCount> > <forkCount>2</forkCount> > </configuration> > </plugin> > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-compiler-plugin</artifactId> > <version>2.3.2</version> > <configuration> > <source>${java.version}</source> > <target>${java.version}</target> > </configuration> > </plugin> > </plugins> > </build> > {code} > JUnit: > {code} > <dependency> > <groupId>junit</groupId> > <artifactId>junit</artifactId> > <version>4.11</version> > </dependency> > {code} > Java test class: > {code} > public class FourthTest { > @Test > public void testOne() throws InterruptedException, ExecutionException, > IOException { > for(int i =0;i<10;i++) { > Thread.sleep(1000); > System.out.println("one --- " + Thread.currentThread().getId()); > } > } > @Test > public void testTwo() throws InterruptedException, ExecutionException, > IOException { > for(int i =0;i<10;i++) { > Thread.sleep(1000); > System.out.println("two --- " + Thread.currentThread().getId()); > } > } > @Test > public void testThree() throws InterruptedException, ExecutionException, > IOException { > for(int i =0;i<10;i++) { > Thread.sleep(1000); > System.out.println("three --- " + Thread.currentThread().getId()); > } > } > @Test > public void testFour() throws InterruptedException, ExecutionException, > IOException { > for(int i =0;i<10;i++) { > Thread.sleep(1000); > System.out.println("four --- " + Thread.currentThread().getId()); > } > } > @Test > public void testFive() throws InterruptedException, ExecutionException, > IOException { > for(int i =0;i<10;i++) { > Thread.sleep(1000); > System.out.println("five --- " + Thread.currentThread().getId()); > } > } > > volatile static boolean a = false; > @Test > public void testSix() throws InterruptedException, ExecutionException, > IOException { > for(int i =0;i<10;i++) { > Thread.sleep(1000); > System.out.println("six --- " + Thread.currentThread().getId()); > //if (!a){(new Exception()).printStackTrace(System.out);a=true;} > } > } > } > {code} > command line: > {code} > mvn clean install test -Dtest=FourthTest -T 2 > {code} > Output > {code} > [INFO] Scanning for projects... > [INFO] Building with 2 threads > [INFO] > [INFO] > ------------------------------------------------------------------------ > [INFO] Building mobile 1.0-SNAPSHOT > [INFO] > ------------------------------------------------------------------------ > [INFO] > [INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ mobile --- > [INFO] Deleting > [INFO] > [INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ > mobile --- > [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. > build is platform dependent! > [WARNING] Using platform encoding (UTF-8 actually) to copy filtered > resources, i.e. build is platform dependent! > [INFO] skip non existing resourceDirectory > [INFO] > [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ mobile --- > [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. > build is platform dependent! > [INFO] Compiling 51 source files to > [INFO] > [INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) > @ mobile --- > [WARNING] Using platform encoding (UTF-8 actually) to copy filtered > resources, i.e. build is platform dependent! > [INFO] Copying 2 resources > [INFO] > [INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ > mobile --- > [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. > build is platform dependent! > [INFO] Compiling 23 source files to > [INFO] > [INFO] --- maven-surefire-plugin:2.16:test (default-test) @ mobile --- > [INFO] Surefire report directory: > [INFO] parallel='methods', perCoreThreadCount=true, threadCount=2, > useUnlimitedThreads=false, threadCountSuites=0, threadCountClasses=0, > threadCountMethods=0 > ------------------------------------------------------- > T E S T S > ------------------------------------------------------- > ------------------------------------------------------- > T E S T S > ------------------------------------------------------- > Running com.blah.ios.FourthTest > three --- 11 > three --- 11 > three --- 11 > three --- 11 > three --- 11 > three --- 11 > three --- 11 > three --- 11 > three --- 11 > three --- 11 > six --- 9 > six --- 9 > six --- 9 > six --- 9 > six --- 9 > six --- 9 > six --- 9 > six --- 9 > six --- 9 > six --- 9 > four --- 13 > four --- 13 > four --- 13 > four --- 13 > four --- 13 > four --- 13 > four --- 13 > four --- 13 > four --- 13 > four --- 13 > one --- 8 > one --- 8 > one --- 8 > one --- 8 > one --- 8 > one --- 8 > one --- 8 > one --- 8 > one --- 8 > one --- 8 > five --- 12 > five --- 12 > five --- 12 > five --- 12 > five --- 12 > five --- 12 > five --- 12 > five --- 12 > five --- 12 > five --- 12 > two --- 10 > two --- 10 > two --- 10 > two --- 10 > two --- 10 > two --- 10 > two --- 10 > two --- 10 > two --- 10 > two --- 10 > Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 60.101 sec - > in com.blah.ios.FourthTest > Results : > Tests run: 6, Failures: 0, Errors: 0, Skipped: 0 > [INFO] > [INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ mobile --- > [INFO] Building jar: > /Users/XX/Documents/XXXXXX/XXXX/XXX/target/mobile-1.0-SNAPSHOT.jar > [INFO] > [INFO] --- maven-install-plugin:2.3.1:install (default-install) @ mobile --- > [INFO] Installing > /Users/XX/Documents/bboxprojects/XXXXXXX/XXXX/target/mobile-1.0-SNAPSHOT.jar > to > /Users/XXXXXX/.m2/repository/com/XXXXX/automation/XXXXX/1.0-SNAPSHOT/mobile-1.0-SNAPSHOT.jar > [INFO] Installing /Users/XXXXXX/Documents/XXXXX/XXXX/mobile/pom.xml to > /Users/XXXXX/.m2/repository/com/XXXXX/XXXX/mobile/1.0-SNAPSHOT/mobile-1.0-SNAPSHOT.pom > [INFO] > [INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ > mobile --- > [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. > build is platform dependent! > [WARNING] Using platform encoding (UTF-8 actually) to copy filtered > resources, i.e. build is platform dependent! > [INFO] skip non existing resourceDirectory > /Users/XXXXXX/Documents/XXXXX/XXXX/XXXXX/src/main/resources > [INFO] > [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ mobile --- > [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. > build is platform dependent! > [INFO] Compiling 1 source file to > /Users/XXXXX/Documents/XXXX/XXXX/XXX/target/classes > [INFO] > [INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) > @ mobile --- > [WARNING] Using platform encoding (UTF-8 actually) to copy filtered > resources, i.e. build is platform dependent! > [INFO] Copying 2 resources > [INFO] > [INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ > mobile --- > [INFO] Nothing to compile - all classes are up to date > [INFO] > [INFO] --- maven-surefire-plugin:2.16:test (default-test) @ mobile --- > [INFO] Skipping execution of surefire because it has already been run for > this configuration > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD SUCCESS > [INFO] > ------------------------------------------------------------------------ > [INFO] Total time: 18.363s (Wall Clock) > [INFO] Finished at: Wed Feb 05 15:44:25 PST 2014 > [INFO] Final Memory: 29M/122M > [INFO] > ------------------------------------------------------------------------ > {code} -- This message was sent by Atlassian JIRA (v6.1.6#6162)