Parallel Test Executor Plugin

splitTests: Split Test Runs

Asks Jenkins to analyze the timing of tests from the last build and divide the tests for this build into roughly equal subsets for parallel execution. example Jenkinsfile
parallelism

Nested Choice of Objects $class: CountDrivenParallelism

Always divide the tests into N parallel sub-tasks of about equal size. This mode is useful if your build slaves are not elastic to control the resource consumption by this task.
size

Type: int

$class: TimeDrivenParallelism

Divide the tests into parallel sub-tasks each no bigger than N minutes. Combined with elastic slaves, such as EC2, the turn-around time of the tests will remain the same no matter how many tests you add.

This value counts just the time spent on executing tests, and not including other time such as checking out the code, building the test, etc. For example, if your test job spends 50 minutes in tests and 60 minutes total from start to finish, then you have 10 minutes "fixed" overhead regardless of the number of tests it executes. If you use this mode and set the value to "10 minutes", then you'll have 5 parallel sub-tasks that all ends in roughly 20 minutes (20 mins = 10 mins tests time + 10 mins overhead.)

"N minutes per a sub-task" is a goal, not a hard constraint. So a sub-task can take longer (for example if you have a single test that takes more than N minutes.)

mins

Type: int

generateInclusions (optional)

If disabled, the splitStep call will return a List<List<String>> containing the exclusion patterns for the different buckets.

If enabled, the splitStep call won't return a List<List<String>>.
Instead it will return a List of a structure with :

  • boolean includes whether the following list is an inclusion or an exclusion list
  • List<String> list the list of patterns

Type: boolean