Skip to content

Commit 0c71c54

Browse files
authored
[JUnit Platform] Update parallel execution documentation (#2609)
Clarify that Cucumber does not guarantee a maximum number of threads. Closes: 2512
1 parent 627ffa1 commit 0c71c54

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

cucumber-junit-platform-engine/README.md

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -185,14 +185,32 @@ in parallel is available as an opt-in feature. To enable parallel execution, set
185185
the `cucumber.execution.parallel.enabled` configuration parameter to `true`,
186186
e.g. in `junit-platform.properties`.
187187

188-
Cucumber supports JUnit's `ParallelExecutionConfigurationStrategy`; see the
189-
configuration options below.
188+
To control properties such as the desired parallelism and maximum parallelism,
189+
Cucumber supports JUnit 5s `ParallelExecutionConfigurationStrategy`. Cucumber
190+
provides two implementations: `dynamic` and `fixed` that can be set through
191+
`cucumber.execution.parallel.config.strategy`. You may also implement a `custom`
192+
strategy.
193+
194+
* `dynamic`: Computes the desired parallelism as `<available cores>` *
195+
`cucumber.execution.parallel.config.dynamic.factor`.
196+
197+
* `fixed`: Set the desired parallelism to `cucumber.execution.parallel.config.fixed.parallelism`.
198+
199+
* `custom`: Specify a custom `ParallelExecutionConfigurationStrategy`
200+
implementation through `cucumber.execution.parallel.config.custom.class`.
201+
202+
If no strategy is specified Cucumber will use the `dynamic` strategy with a
203+
factor of `1`.
204+
205+
Note: Cucumber does not guarantee that the number of concurrently executing
206+
tests will not exceed the configured parallelism. The underlying `ForkJoinPool`
207+
used to execute scenarios may spawn additional threads. To obtain such
208+
guarantees us a custom parallel configuration strategy.
190209

191210
### Exclusive Resources ###
192211

193-
The JUnit Platform supports parallel execution. To avoid flaky tests when
194-
multiple scenarios manipulate the same resource, tests can be
195-
[synchronized][junit5-user-guide-synchronization] on that resource.
212+
To avoid flaky tests when multiple scenarios manipulate the same resource, tests
213+
can be [synchronized][junit5-user-guide-synchronization] on that resource.
196214

197215
[junit5-user-guide-synchronization]: https://junit.org/junit5/docs/current/user-guide/#writing-tests-parallel-execution-synchronization
198216

0 commit comments

Comments
 (0)