For test framework were used next stack of technologies: Java, Maven, Selenium, Junit, Cucumber, Spring Boot, YAML
cucumber.version = 5.4.0 Cucumber-JVM now has JUnit5 support and we can use parallel I have tried to add -Dcucumber.execution.parallel.enabled=true -Dcucumber.execution.parallel.config.strategy=dynamic
https://github.com/cucumber/cucumber-jvm/blob/master/release-notes/v5.0.0.md
was used :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<includes>
<include>**/RunCucumberIT.java</include>
<release>11</release>
</includes>
<!-- <parallel>methods</parallel>-->
<!-- <threadCount>4</threadCount>-->
</configuration>
</plugin>
You can provide options by adding a junit-platform.properties
file to your classpath root. For example:
src/test/resources/junit-platform.properties
cucumber.execution.parallel.enabled=true
cucumber.execution.parallel.config.strategy=fixed
cucumber.execution.parallel.config.fixed.parallelism=10
You can also pass options to the JUnit Platform via Surefires/Failsafes configurationParameters parameter field.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<properties>
<configurationParameters>
cucumber.execution.parallel.config.fixed.parallelism=24
</configurationParameters>
</properties>
</configuration>
</plugin>
And because Cucumber is a JUnit Platform Engine you can also use any of the other ways you'd pass configuration parameter to the JUnit Platform.
Note that -D
will not work because surefire starts a new JVM, you'd have to use `-DargLine='....' for this.