[ 
https://issues.apache.org/jira/browse/SUREFIRE-1529?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16525173#comment-16525173
 ] 

Zsombor Gegesy commented on SUREFIRE-1529:
------------------------------------------

Restructuring the projects is not an option, unfortunately. It would need a 
huge refactor on the source code side - which would be hard to upstream. And 
even after the tests are moved to lot of smaller modules, using it, wouldn't be 
much simpler than the current situation, where I have a shell script, which 
collects all the java source files under **/src/test/java/**/*.java, and after 
some slicing and dicing, it creates a long maven command line, with specifying 
a list of tests. It wouldn't help if I had to specify module names instead of 
this. 
 Using JUnit categories is neither an option, for two reasons: because some 
projects use TestNG, and because I don't have knowledge ahead, that how many 
machines do I have, so it's unclear, how many categories do I need to create. 
Maybe 3, maybe 10.  Maybe something between them.
 This patch is for automating the test parallelization and distribution as 
seamless and scaleable, as possible.

> Implement test bucketing
> ------------------------
>
>                 Key: SUREFIRE-1529
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1529
>             Project: Maven Surefire
>          Issue Type: New Feature
>          Components: Maven Surefire Plugin
>    Affects Versions: 2.22.0
>            Reporter: Zsombor Gegesy
>            Priority: Major
>         Attachments: SUREFIRE-1529.patch
>
>
> There are projects, which has hundreds or thousands of test, which took hours 
> to complete - to paralelize this, it would be good, if tests could be 
> partitioned automatically into buckets - of course perfect bucketization is 
> not feasible, due to lack of knowledge of test run times (and it would be a 
> NP-complete problem even that case).
> The idea is to start tests concurrently, in different machines, something 
> like this:
>  # mvn test -DnumberOfBuckets=3 -DbucketId=0
>  # mvn test -DnumberOfBuckets=3 -DbucketId=1
>  # mvn test -DnumberOfBuckets=3 -DbucketId=2 
>  And the results could be collected and aggregated later by external 
> processes.
> The current solution is to manually collect the tests, and generate huge 
> command lines to do the same.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to