-
Improvement
-
Resolution: Won't Do
-
Major
-
None
-
pipeline-plugin
Starting with an scenario such as N test classes run:
com.parallelizable.one (duration 10 mins)
com.parallelizable.two (duration 10 mins)
com.notparallelizable.one (duration 1 mins)
com.notparallelizable.two (duration 1 mins)
I am interested in parallelizing classes with packaging com.parallelizable, ending with an pseudo-pipeline such as:
node {
test (com.notparallelizable)
splits = splitTests parallelism: 2
parallel ( "one": test(splits[0].list.join('\n')),
"two": test(splits[1].list.join('\n')))
}
My current workaround is filtering with grep:
parallel ( "one": test(splits[0].list.grep(~/com.parallelizable.*/).join('\n')),
"two": test(splits[1].list.grep(~/com.parallelizable.*/).join('\n')))
but obviously, the resulting tests wont be ballanced in number of elements. I was thinking in filtering at the plugin level, so the returned groups would be properly ballanced.
Im not sure if this improvement would be interesting for freestyle projects (i dont use them anymore), but for sure it will for pipelines.
- relates to
-
JENKINS-27395 distinguish test reports filed from different parts of workflow
-
- Resolved
-
- links to
I'd like to have the same functionality but for a different reason.
I have a maven project with multiple fast unit tests run by the surefire plugin and a few longer integration tests run by the failsafe plugin.
When I split my test I always en up with one split that contains only unit tests or only integration tests so effectively neither the execution of surefire or failsafe is optimal.
It would be nice if I could specify test includes/excludes patterns and split the tests twice for my 2 test execution context.