On Thu, 23 Mar 2023 at 10:43 pm, Debraj Manna <[email protected]>
wrote:

> >
> > which means a maximum of 3 jvms running at the same time.
>
>
> I don't understand this. Why a maximum of 3? If I am running with -T 2
> there can be a maximum of 2 JVMs, right?


1 jvm for maven which can build 2 modules in parallel using this jvm
But surefire will fork 1 jvm per module so
1 + (2*1) = 3



>
> On Wed, Mar 22, 2023 at 4:51 PM Olivier Lamy <[email protected]> wrote:
>
> > Hi.
> > -Tx option will not change anything about how surefire works.
> > using this configuration (which is the default):
> >             <forkCount>1</forkCount>
> >             <reuseForks>true</reuseForks>
> >
> > means surefire will create only one fork and reuse it BUT only for the
> > same maven module.
> > With -T2 you will have a maximum of 2 maven modules building in
> > parallel which means you can have potentially one surefire forked jvm
> > per module
> > which means a maximum of 3 jvms running at the same time.
> >
> >
> >
> > On Wed, 22 Mar 2023 at 18:53, Debraj Manna <[email protected]>
> > wrote:
> > >
> > > I have a multi-module project. My POM structure is like below
> > >
> > > root/pom.xml
> > >
> > > <modules>
> > > <!-- a,b,c & d are not dependent on each other. -->
> > > <module>a</module>
> > > <module>b</module>
> > > <module>c</module>
> > > <module>d</module>
> > > </modules>
> > >
> > > I am running surefire with reuseForks = true, forkCount = 1. If I am
> > > executing all tests at the root level with mvn -T 2 test. How will
> tests
> > be
> > > executed?
> > >
> > > Assuming maven picks modules *a* and *b* to be executed first. Then
> > module
> > > *a* and Module *b* tests will be executed in two separate JVM and once
> > > those are finished. There will be two new JVM spawned which will
> execute
> > > all tests for module c and module d.
> > >
> > > Is my above understanding correct or the same two JVMs will be reused
> for
> > > executing tests for module *c* and module *d?*
> > >
> > > I am using surefire 3.0.0-M7. My entire surefire config in root/pom.xml
> > > looks like below.
> > >
> > > <pluginManagement>
> > >       <plugins>
> > >         <plugin>
> > >           <groupId>org.apache.maven.plugins</groupId>
> > >           <artifactId>maven-surefire-plugin</artifactId>
> > >           <version>3.0.0-M7</version>
> > >           <configuration>
> > >             <systemPropertyVariables>
> > >               <!-- System properties to be applied to all tests -->
> > >               <grpc.enabled>false</grpc.enabled>
> > >               <management.metrics.export.datadog.enabled>false
> > >               </management.metrics.export.datadog.enabled>
> > >               <spring.profiles.active>test</spring.profiles.active>
> > >               <spring.zipkin.enabled>false</spring.zipkin.enabled>
> > >
> > >
> <spring.test.context.cache.maxSize>3</spring.test.context.cache.maxSize>
> > >               <user.language>en</user.language>
> > >               <user.region>US</user.region>
> > >               <ut.forkNumber>$${surefire.forkNumber}</ut.forkNumber>
> > >             </systemPropertyVariables>
> > >             <!--These values are chosen experimentally-->
> > >             <argLine>
> > >               -Xms512m -Xmx3g -XX:MaxDirectMemorySize=512m
> > > -XX:MaxMetaspaceSize=768m
> > >               -XX:+HeapDumpOnOutOfMemoryError @{argLine}
> > >               <!--
> > https://github.com/RuedigerMoeller/fast-serialization#mvn
> > > -->
> > >               --add-modules=jdk.incubator.foreign
> > >               --add-opens=java.base/java.lang=ALL-UNNAMED
> > >               --add-opens=java.base/java.math=ALL-UNNAMED
> > >               --add-opens=java.base/java.util=ALL-UNNAMED
> > >               --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
> > >               --add-opens=java.base/java.net=ALL-UNNAMED
> > >               --add-opens=java.base/java.text=ALL-UNNAMED
> > >               --add-opens=java.sql/java.sql=ALL-UNNAMED
> > >               <!-- Needed only for TestingUtils.parseJsonToPojo -->
> > >               --add-opens=java.base/java.time=ALL-UNNAMED
> > >               <!-- For wiremock -->
> > >
> > > --add-opens=java.xml/com.sun.org.apache.xpath.internal.jaxp=ALL-UNNAMED
> > >             </argLine>
> > >
> > >             <!--  Runs test suite / classes in parallel-->
> > >             <parallel>suitesAndClasses</parallel>
> > >             <perCoreThreadCount>false</perCoreThreadCount>
> > >
> > >             <!--Uncomment the two lines below if you want to redirect
> all
> > > mvn test results into files.-->
> > >
> >  <!--<redirectTestOutputToFile>true</redirectTestOutputToFile>-->
> > >
> > >
> >
> <!--<reportsDirectory>${project.build.directory}/test-reports</reportsDirectory>-->
> > >
> > >             <!--  Starts multiple JVMs and runs tests in parallel-->
> > >             <forkCount>1</forkCount>
> > >             <reuseForks>true</reuseForks>
> > >           </configuration>
> > >         </plugin>
> > >         <plugin>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected]
> > For additional commands, e-mail: [email protected]
> >
> >
>

Reply via email to