Maven surefire plugin: parallel configuration not running tests in parallel

2021-02-16 Thread Jay Crosley
I’m trying to get junit5 tests to run in parallel using the maven surefire 
plugin, as described on 
https://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html.
 Despite configuration that looks correct, I can’t get them to run in parallel. 
I’ll paste my configuration and what I’ve tried and experienced so far. Any 
help is greatly appreciated!

My surefire plugin configuration looks like this:



  org.apache.maven.plugins
  maven-surefire-plugin
  2.21.0
  

  org.junit.platform
  junit-platform-surefire-provider
  1.2.0


  org.junit.jupiter
  junit-jupiter-engine
  5.2.0

  


And I have a maven profile setup with additional configuration for our 
integration tests, which includes the parallel configuration. The commented out 
configurations indicate all the things I’ve tried.



  integration-tests-local
  

  
org.apache.maven.plugins
maven-surefire-plugin
${surefire.version}

  classes
  4
  true
  
  
  
  
  
  false
  
  false
  
none
  
  
**/*IntegrationTests*.java
  

  

  

The project is structured with a parent pom.xml and several sub-projects. The 
tests are in the “integration-tests” module, which pulls in the surefire plugin 
with no additional configuration:



  maven-surefire-plugin


I mention the sub-project because it means that the maven command I’m running 
looks like this (I’ve tried with/without the “-T”):


mvn -T 4 test -e -pl integration-tests -am -Pintegration-tests-local

For the purposes of debugging, I’ve created 10 .java files named 
TestIntegrationTests1.java through TestIntegrationTests10.java, each of which 
has 10 unit tests all of which look like this:


package com.axon.scorpius.integration_tests;

import static org.junit.jupiter.api.Assertions.assertTrue;

import org.junit.jupiter.api.Test;

/**
 * Tests.
 */
public class TestIntegrationTests1 {

  @Test
  void test1() {
try {
  Thread.sleep(1000);
} catch (InterruptedException ex) {
  System.out.println("Interrupted exception: " + ex);
}

assertTrue(true);
  }



… 9 identical tests

My hope is that when I run “mvn test” (I’m running locally in iTerm on a 
Macbook), these 10 test classes will run in parallel (at least partially), but 
they run serially, as seen here:

INFO] ---
[INFO]  T E S T S
[INFO] ---
[INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests4
[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 11.057 
s - in com.axon.scorpius.integration_tests.TestIntegrationTests4
[INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests6
[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 11.029 
s - in com.axon.scorpius.integration_tests.TestIntegrationTests6
[INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests10
[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 11.025 
s - in com.axon.scorpius.integration_tests.TestIntegrationTests10
[INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests2
[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 11.027 
s - in com.axon.scorpius.integration_tests.TestIntegrationTests2
[INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests7
[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 11.032 
s - in com.axon.scorpius.integration_tests.TestIntegrationTests7
[INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests5
[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 11.027 
s - in com.axon.scorpius.integration_tests.TestIntegrationTests5
[INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests1
[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 11.032 
s - in com.axon.scorpius.integration_tests.TestIntegrationTests1
[INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests3
[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 11.036 
s - in com.axon.scorpius.integration_tests.TestIntegrationTests3
[INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests9
[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 11.013 
s - in com.axon.scorpius.integration_tests.TestIntegrationTests9
[INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests8
[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 11.026 
s - in com.axon.scorpius.integration_tests.TestIntegrationTests8
[INFO]
[INFO] Results:
[INFO]
[WARNING] Tests run: 113, Failures: 0, Errors: 0, Skipped: 2


Re: Maven surefire plugin: parallel configuration not running tests in parallel

2021-02-16 Thread Laird Nelson
JUnit5 does this in a strange way and they don't make it obvious.

Try a recipe like this:


  maven-surefire-plugin
  




  
junit.jupiter.execution.parallel.enabled=true
junit.jupiter.execution.parallel.mode.default=concurrent
  

  


Best,
Laird

On Tue, Feb 16, 2021 at 2:04 PM Jay Crosley  wrote:

> I’m trying to get junit5 tests to run in parallel using the maven surefire
> plugin, as described on
> https://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html.
> Despite configuration that looks correct, I can’t get them to run in
> parallel. I’ll paste my configuration and what I’ve tried and experienced
> so far. Any help is greatly appreciated!
>
> My surefire plugin configuration looks like this:
>
>
> 
>   org.apache.maven.plugins
>   maven-surefire-plugin
>   2.21.0
>   
> 
>   org.junit.platform
>   junit-platform-surefire-provider
>   1.2.0
> 
> 
>   org.junit.jupiter
>   junit-jupiter-engine
>   5.2.0
> 
>   
> 
>
> And I have a maven profile setup with additional configuration for our
> integration tests, which includes the parallel configuration. The commented
> out configurations indicate all the things I’ve tried.
>
>
> 
>   integration-tests-local
>   
> 
>   
> org.apache.maven.plugins
> maven-surefire-plugin
> ${surefire.version}
> 
>   classes
>   4
>   true
>   
>   
>   
>   
>   
>   false
>   
>   false
>   
> none
>   
>   
> **/*IntegrationTests*.java
>   
> 
>   
> 
>   
>
> The project is structured with a parent pom.xml and several sub-projects.
> The tests are in the “integration-tests” module, which pulls in the
> surefire plugin with no additional configuration:
>
>
> 
>   maven-surefire-plugin
> 
>
> I mention the sub-project because it means that the maven command I’m
> running looks like this (I’ve tried with/without the “-T”):
>
>
> mvn -T 4 test -e -pl integration-tests -am -Pintegration-tests-local
>
> For the purposes of debugging, I’ve created 10 .java files named
> TestIntegrationTests1.java through TestIntegrationTests10.java, each of
> which has 10 unit tests all of which look like this:
>
>
> package com.axon.scorpius.integration_tests;
>
> import static org.junit.jupiter.api.Assertions.assertTrue;
>
> import org.junit.jupiter.api.Test;
>
> /**
>  * Tests.
>  */
> public class TestIntegrationTests1 {
>
>   @Test
>   void test1() {
> try {
>   Thread.sleep(1000);
> } catch (InterruptedException ex) {
>   System.out.println("Interrupted exception: " + ex);
> }
>
> assertTrue(true);
>   }
>
>
>
> … 9 identical tests
>
> My hope is that when I run “mvn test” (I’m running locally in iTerm on a
> Macbook), these 10 test classes will run in parallel (at least partially),
> but they run serially, as seen here:
>
> INFO] ---
> [INFO]  T E S T S
> [INFO] ---
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests4
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.057 s - in com.axon.scorpius.integration_tests.TestIntegrationTests4
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests6
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.029 s - in com.axon.scorpius.integration_tests.TestIntegrationTests6
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests10
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.025 s - in com.axon.scorpius.integration_tests.TestIntegrationTests10
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests2
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.027 s - in com.axon.scorpius.integration_tests.TestIntegrationTests2
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests7
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.032 s - in com.axon.scorpius.integration_tests.TestIntegrationTests7
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests5
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.027 s - in com.axon.scorpius.integration_tests.TestIntegrationTests5
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests1
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.032 s - in com.axon.scorpius.integration_tests.TestIntegrationTests1
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests3
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.036 s - in com.axon.scorpius.integration_tests.TestIntegrationTests3
> [INFO] Run

Re: Maven surefire plugin: parallel configuration not running tests in parallel

2021-02-16 Thread Jay Crosley
Thank you. That looked promising but alas, I get the same result. I tried those 
with and without the other surefire configurations for running parallel tests. 
I also tried (from browsing the web) the maven-failsafe-plugin with the various 
configurations and get the same result with that too.

From: Laird Nelson 
Date: Tuesday, February 16, 2021 at 2:56 PM
To: Maven Users List 
Subject: Re: Maven surefire plugin: parallel configuration not running tests in 
parallel
JUnit5 does this in a strange way and they don't make it obvious.

Try a recipe like this:


  maven-surefire-plugin
  




  
junit.jupiter.execution.parallel.enabled=true
junit.jupiter.execution.parallel.mode.default=concurrent
  

  


Best,
Laird

On Tue, Feb 16, 2021 at 2:04 PM Jay Crosley  wrote:

> I’m trying to get junit5 tests to run in parallel using the maven surefire
> plugin, as described on
> https://urldefense.proofpoint.com/v2/url?u=https-3A__maven.apache.org_surefire_maven-2Dsurefire-2Dplugin_examples_fork-2Doptions-2Dand-2Dparallel-2Dexecution.html&d=DwIFaQ&c=0hefKdg9jtsMu47wpF0ovg&r=qyxGgg8iek4zUTwPHqQd2x5bP20ZI2bxMqb2S9cASmw&m=l4pkyWdpKGZmIkAgh8BX_Pucc2XXQLIcXqoMUG2MLQc&s=BDHGeYlib1BtRqkGRGkKw-wJorLBhcO0-Dh6mODYUhY&e=
>  .
> Despite configuration that looks correct, I can’t get them to run in
> parallel. I’ll paste my configuration and what I’ve tried and experienced
> so far. Any help is greatly appreciated!
>
> My surefire plugin configuration looks like this:
>
>
> 
>   org.apache.maven.plugins
>   maven-surefire-plugin
>   2.21.0
>   
> 
>   org.junit.platform
>   junit-platform-surefire-provider
>   1.2.0
> 
> 
>   org.junit.jupiter
>   junit-jupiter-engine
>   5.2.0
> 
>   
> 
>
> And I have a maven profile setup with additional configuration for our
> integration tests, which includes the parallel configuration. The commented
> out configurations indicate all the things I’ve tried.
>
>
> 
>   integration-tests-local
>   
> 
>   
> org.apache.maven.plugins
> maven-surefire-plugin
> ${surefire.version}
> 
>   classes
>   4
>   true
>   
>   
>   
>   
>   
>   false
>   
>   false
>   
> none
>   
>   
> **/*IntegrationTests*.java
>   
> 
>   
> 
>   
>
> The project is structured with a parent pom.xml and several sub-projects.
> The tests are in the “integration-tests” module, which pulls in the
> surefire plugin with no additional configuration:
>
>
> 
>   maven-surefire-plugin
> 
>
> I mention the sub-project because it means that the maven command I’m
> running looks like this (I’ve tried with/without the “-T”):
>
>
> mvn -T 4 test -e -pl integration-tests -am -Pintegration-tests-local
>
> For the purposes of debugging, I’ve created 10 .java files named
> TestIntegrationTests1.java through TestIntegrationTests10.java, each of
> which has 10 unit tests all of which look like this:
>
>
> package com.axon.scorpius.integration_tests;
>
> import static org.junit.jupiter.api.Assertions.assertTrue;
>
> import org.junit.jupiter.api.Test;
>
> /**
>  * Tests.
>  */
> public class TestIntegrationTests1 {
>
>   @Test
>   void test1() {
> try {
>   Thread.sleep(1000);
> } catch (InterruptedException ex) {
>   System.out.println("Interrupted exception: " + ex);
> }
>
> assertTrue(true);
>   }
>
>
>
> … 9 identical tests
>
> My hope is that when I run “mvn test” (I’m running locally in iTerm on a
> Macbook), these 10 test classes will run in parallel (at least partially),
> but they run serially, as seen here:
>
> INFO] ---
> [INFO]  T E S T S
> [INFO] ---
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests4
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.057 s - in com.axon.scorpius.integration_tests.TestIntegrationTests4
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests6
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.029 s - in com.axon.scorpius.integration_tests.TestIntegrationTests6
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests10
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.025 s - in com.axon.scorpius.integrat

Re: Maven surefire plugin: parallel configuration not running tests in parallel

2021-02-16 Thread Laird Nelson
On Tue, Feb 16, 2021 at 4:00 PM Jay Crosley  wrote:

> Thank you. That looked promising but alas, I get the same result. I tried
> those with and without the other surefire configurations for running
> parallel tests. I also tried (from browsing the web) the
> maven-failsafe-plugin with the various configurations and get the same
> result with that too.
>

Best of luck; that configuration works for sure.

Best,
Laird


Re: Maven surefire plugin: parallel configuration not running tests in parallel

2021-02-16 Thread Jay Crosley
I take it back, the maven-failsafe-plugin works with the junit configuration 
options you suggested. That was the one combination I hadn’t tried. Woo hoo!

From: Laird Nelson 
Date: Tuesday, February 16, 2021 at 4:01 PM
To: Maven Users List 
Subject: Re: Maven surefire plugin: parallel configuration not running tests in 
parallel
On Tue, Feb 16, 2021 at 4:00 PM Jay Crosley  wrote:

> Thank you. That looked promising but alas, I get the same result. I tried
> those with and without the other surefire configurations for running
> parallel tests. I also tried (from browsing the web) the
> maven-failsafe-plugin with the various configurations and get the same
> result with that too.
>

Best of luck; that configuration works for sure.

Best,
Laird


Re: Maven surefire plugin: parallel configuration not running tests in parallel

2021-02-16 Thread Laird Nelson
On Tue, Feb 16, 2021 at 4:18 PM Jay Crosley  wrote:

> I take it back, the maven-failsafe-plugin works with the junit
> configuration options you suggested. That was the one combination I hadn’t
> tried. Woo hoo!
>

I should have mentioned: there are no other configuration settings
necessary.

Best,
Laird


Re: Maven surefire plugin: parallel configuration not running tests in parallel

2021-02-17 Thread Tibor Digana
In case of combining JUnit5 and Surefire/Failsafe, the configuration
parameters e.g. "parallel" and "threadCountClasses" are not bound to the
native JUnit parameters "junit.jupiter.execution.parallel.enabled" because
it was an agreement between Maven/JUnit teams and the solution became "by
design". We can talk about a new concept and bind these parameters of
course.

Regarding the parallel execution has it's own logging problems in plugin on
the top of JUnit5 engine but that's another issue you may be facing. We are
approaching the fix step by step.

Cheers
Tibor

On Tue, Feb 16, 2021 at 11:04 PM Jay Crosley  wrote:

> I’m trying to get junit5 tests to run in parallel using the maven surefire
> plugin, as described on
> https://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html.
> Despite configuration that looks correct, I can’t get them to run in
> parallel. I’ll paste my configuration and what I’ve tried and experienced
> so far. Any help is greatly appreciated!
>
> My surefire plugin configuration looks like this:
>
>
> 
>   org.apache.maven.plugins
>   maven-surefire-plugin
>   2.21.0
>   
> 
>   org.junit.platform
>   junit-platform-surefire-provider
>   1.2.0
> 
> 
>   org.junit.jupiter
>   junit-jupiter-engine
>   5.2.0
> 
>   
> 
>
> And I have a maven profile setup with additional configuration for our
> integration tests, which includes the parallel configuration. The commented
> out configurations indicate all the things I’ve tried.
>
>
> 
>   integration-tests-local
>   
> 
>   
> org.apache.maven.plugins
> maven-surefire-plugin
> ${surefire.version}
> 
>   classes
>   4
>   true
>   
>   
>   
>   
>   
>   false
>   
>   false
>   
> none
>   
>   
> **/*IntegrationTests*.java
>   
> 
>   
> 
>   
>
> The project is structured with a parent pom.xml and several sub-projects.
> The tests are in the “integration-tests” module, which pulls in the
> surefire plugin with no additional configuration:
>
>
> 
>   maven-surefire-plugin
> 
>
> I mention the sub-project because it means that the maven command I’m
> running looks like this (I’ve tried with/without the “-T”):
>
>
> mvn -T 4 test -e -pl integration-tests -am -Pintegration-tests-local
>
> For the purposes of debugging, I’ve created 10 .java files named
> TestIntegrationTests1.java through TestIntegrationTests10.java, each of
> which has 10 unit tests all of which look like this:
>
>
> package com.axon.scorpius.integration_tests;
>
> import static org.junit.jupiter.api.Assertions.assertTrue;
>
> import org.junit.jupiter.api.Test;
>
> /**
>  * Tests.
>  */
> public class TestIntegrationTests1 {
>
>   @Test
>   void test1() {
> try {
>   Thread.sleep(1000);
> } catch (InterruptedException ex) {
>   System.out.println("Interrupted exception: " + ex);
> }
>
> assertTrue(true);
>   }
>
>
>
> … 9 identical tests
>
> My hope is that when I run “mvn test” (I’m running locally in iTerm on a
> Macbook), these 10 test classes will run in parallel (at least partially),
> but they run serially, as seen here:
>
> INFO] ---
> [INFO]  T E S T S
> [INFO] ---
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests4
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.057 s - in com.axon.scorpius.integration_tests.TestIntegrationTests4
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests6
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.029 s - in com.axon.scorpius.integration_tests.TestIntegrationTests6
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests10
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.025 s - in com.axon.scorpius.integration_tests.TestIntegrationTests10
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests2
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.027 s - in com.axon.scorpius.integration_tests.TestIntegrationTests2
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests7
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.032 s - in com.axon.scorpius.integration_tests.TestIntegrationTests7
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests5
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.027 s - in com.axon.scorpius.integration_tests.TestIntegrationTests5
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests1
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.032 s - in com.axon.scorpius

Re: Maven surefire plugin: parallel configuration not running tests in parallel

2021-02-17 Thread Jay Crosley
My plan is to run these serially for local development and in parallel for 
TeamCity, and for TeamCity I think it will pick out the logs using flowId, so 
hopefully that will work.

From: Tibor Digana 
Date: Wednesday, February 17, 2021 at 2:19 AM
To: Maven Users List 
Subject: Re: Maven surefire plugin: parallel configuration not running tests in 
parallel
In case of combining JUnit5 and Surefire/Failsafe, the configuration
parameters e.g. "parallel" and "threadCountClasses" are not bound to the
native JUnit parameters "junit.jupiter.execution.parallel.enabled" because
it was an agreement between Maven/JUnit teams and the solution became "by
design". We can talk about a new concept and bind these parameters of
course.

Regarding the parallel execution has it's own logging problems in plugin on
the top of JUnit5 engine but that's another issue you may be facing. We are
approaching the fix step by step.

Cheers
Tibor

On Tue, Feb 16, 2021 at 11:04 PM Jay Crosley  wrote:

> I’m trying to get junit5 tests to run in parallel using the maven surefire
> plugin, as described on
> https://urldefense.proofpoint.com/v2/url?u=https-3A__maven.apache.org_surefire_maven-2Dsurefire-2Dplugin_examples_fork-2Doptions-2Dand-2Dparallel-2Dexecution.html&d=DwIFaQ&c=0hefKdg9jtsMu47wpF0ovg&r=qyxGgg8iek4zUTwPHqQd2x5bP20ZI2bxMqb2S9cASmw&m=M_2Gjt2FtuqAHQQ0HhrtLwLB6txc8A381wmGzx0q2jw&s=9y-T5guZoywkTqejMKcpEcM60c0Eg_HNafGvBD39cxM&e=
>  .
> Despite configuration that looks correct, I can’t get them to run in
> parallel. I’ll paste my configuration and what I’ve tried and experienced
> so far. Any help is greatly appreciated!
>
> My surefire plugin configuration looks like this:
>
>
> 
>   org.apache.maven.plugins
>   maven-surefire-plugin
>   2.21.0
>   
> 
>   org.junit.platform
>   junit-platform-surefire-provider
>   1.2.0
> 
> 
>   org.junit.jupiter
>   junit-jupiter-engine
>   5.2.0
> 
>   
> 
>
> And I have a maven profile setup with additional configuration for our
> integration tests, which includes the parallel configuration. The commented
> out configurations indicate all the things I’ve tried.
>
>
> 
>   integration-tests-local
>   
> 
>   
> org.apache.maven.plugins
> maven-surefire-plugin
> ${surefire.version}
> 
>   classes
>   4
>   true
>   
>   
>   
>   
>   
>   false
>   
>   false
>   
> none
>   
>   
> **/*IntegrationTests*.java
>   
> 
>   
> 
>   
>
> The project is structured with a parent pom.xml and several sub-projects.
> The tests are in the “integration-tests” module, which pulls in the
> surefire plugin with no additional configuration:
>
>
> 
>   maven-surefire-plugin
> 
>
> I mention the sub-project because it means that the maven command I’m
> running looks like this (I’ve tried with/without the “-T”):
>
>
> mvn -T 4 test -e -pl integration-tests -am -Pintegration-tests-local
>
> For the purposes of debugging, I’ve created 10 .java files named
> TestIntegrationTests1.java through TestIntegrationTests10.java, each of
> which has 10 unit tests all of which look like this:
>
>
> package com.axon.scorpius.integration_tests;
>
> import static org.junit.jupiter.api.Assertions.assertTrue;
>
> import org.junit.jupiter.api.Test;
>
> /**
>  * Tests.
>  */
> public class TestIntegrationTests1 {
>
>   @Test
>   void test1() {
> try {
>   Thread.sleep(1000);
> } catch (InterruptedException ex) {
>   System.out.println("Interrupted exception: " + ex);
> }
>
> assertTrue(true);
>   }
>
>
>
> … 9 identical tests
>
> My hope is that when I run “mvn test” (I’m running locally in iTerm on a
> Macbook), these 10 test classes will run in parallel (at least partially),
> but they run serially, as seen here:
>
> INFO] ---
> [INFO]  T E S T S
> [INFO] ---
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests4
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.057 s - in com.axon.scorpius.integration_tests.TestIntegrationTests4
> [INFO] Running com.axon.scorpius.integration_tests.TestIntegrationTests6
> [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 11.029 s - in com.axon.scorpius.integration_tests.TestIntegrationTests6
> [IN

Re: Maven surefire plugin: parallel configuration not running tests in parallel

2021-02-19 Thread Tibor Digana
We will do our best as well. On one hand TeamCity uses flowId based on
Thread ID, the surefire plugin can use a similar mechanism we used before
in surefire-junit47-provider and we can identify the lines of system output
by Thread ID.

T

On Wed, Feb 17, 2021 at 6:31 PM Jay Crosley  wrote:

> My plan is to run these serially for local development and in parallel for
> TeamCity, and for TeamCity I think it will pick out the logs using flowId,
> so hopefully that will work.
>
> From: Tibor Digana 
> Date: Wednesday, February 17, 2021 at 2:19 AM
> To: Maven Users List 
> Subject: Re: Maven surefire plugin: parallel configuration not running
> tests in parallel
> In case of combining JUnit5 and Surefire/Failsafe, the configuration
> parameters e.g. "parallel" and "threadCountClasses" are not bound to the
> native JUnit parameters "junit.jupiter.execution.parallel.enabled" because
> it was an agreement between Maven/JUnit teams and the solution became "by
> design". We can talk about a new concept and bind these parameters of
> course.
>
> Regarding the parallel execution has it's own logging problems in plugin on
> the top of JUnit5 engine but that's another issue you may be facing. We are
> approaching the fix step by step.
>
> Cheers
> Tibor
>
> On Tue, Feb 16, 2021 at 11:04 PM Jay Crosley  wrote:
>
> > I’m trying to get junit5 tests to run in parallel using the maven
> surefire
> > plugin, as described on
> >
> https://urldefense.proofpoint.com/v2/url?u=https-3A__maven.apache.org_surefire_maven-2Dsurefire-2Dplugin_examples_fork-2Doptions-2Dand-2Dparallel-2Dexecution.html&d=DwIFaQ&c=0hefKdg9jtsMu47wpF0ovg&r=qyxGgg8iek4zUTwPHqQd2x5bP20ZI2bxMqb2S9cASmw&m=M_2Gjt2FtuqAHQQ0HhrtLwLB6txc8A381wmGzx0q2jw&s=9y-T5guZoywkTqejMKcpEcM60c0Eg_HNafGvBD39cxM&e=
> .
> > Despite configuration that looks correct, I can’t get them to run in
> > parallel. I’ll paste my configuration and what I’ve tried and experienced
> > so far. Any help is greatly appreciated!
> >
> > My surefire plugin configuration looks like this:
> >
> >
> > 
> >   org.apache.maven.plugins
> >   maven-surefire-plugin
> >   2.21.0
> >   
> > 
> >   org.junit.platform
> >   junit-platform-surefire-provider
> >   1.2.0
> > 
> > 
> >   org.junit.jupiter
> >   junit-jupiter-engine
> >   5.2.0
> > 
> >   
> > 
> >
> > And I have a maven profile setup with additional configuration for our
> > integration tests, which includes the parallel configuration. The
> commented
> > out configurations indicate all the things I’ve tried.
> >
> >
> > 
> >   integration-tests-local
> >   
> > 
> >   
> > org.apache.maven.plugins
> > maven-surefire-plugin
> > ${surefire.version}
> > 
> >   classes
> >   4
> >   true
> >   
> >   
> >   
> >   
> >   
> >   false
> >   
> >   false
> >   
> > none
> >   
> >   
> > **/*IntegrationTests*.java
> >   
> > 
> >   
> > 
> >   
> >
> > The project is structured with a parent pom.xml and several sub-projects.
> > The tests are in the “integration-tests” module, which pulls in the
> > surefire plugin with no additional configuration:
> >
> >
> > 
> >   maven-surefire-plugin
> > 
> >
> > I mention the sub-project because it means that the maven command I’m
> > running looks like this (I’ve tried with/without the “-T”):
> >
> >
> > mvn -T 4 test -e -pl integration-tests -am -Pintegration-tests-local
> >
> > For the purposes of debugging, I’ve created 10 .java files named
> > TestIntegrationTests1.java through TestIntegrationTests10.java, each of
> > which has 10 unit tests all of which look like this:
> >
> >
> > package com.axon.scorpius.integration_tests;
> >
> > import static org.junit.jupiter.api.Assertions.assertTrue;
> >
> > import org.junit.jupiter.api.Test;
> >
> > /**
> >  * Tests.
> >  */
> > public class TestIntegrationTests1 {
> >
> >   @Test
> >   void test1() {
> > try {
> >   Thread.sleep(1000);
> > } catch (InterruptedException ex) {
> >   System.out.println("Interrupted exception: " + ex);
> >