[ 
https://issues.apache.org/jira/browse/SUREFIRE-726?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tibor Digana updated SUREFIRE-726:
----------------------------------
    Fix Version/s:     (was: 3.0-RC1)

> Test list preprocessor support for tests to be run
> --------------------------------------------------
>
>                 Key: SUREFIRE-726
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-726
>             Project: Maven Surefire
>          Issue Type: New Feature
>    Affects Versions: 2.9
>            Reporter: Janmejay Singh
>            Priority: Major
>             Fix For: 3.0
>
>         Attachments: 
> 0001-Adds-test-list-preprocessor-support-which-loads-an-o.patch, 
> 0002-Integration-test-for-preprocessor.-2-modules-one-pro.patch, 
> 0003-exposed-testPreprocessor-configuration-parameter-as-.patch, 
> 0004-exposed-testPreprocessor-for-IntegrationTestMojo-as-.patch
>
>
> This exposes an interface(named TestListPreprocessor, which has a method 
> named preprocessTestClasses) that can be implemented by a user and injected 
> into surefire plugin configuration to have it used for preprocessing list of 
> tests to be run. Given the original test list, user's preprocessing algorithm 
> can choose to prune or reorder the list and return it back from 
> TestListPreprocessor#preprocessTestClasses, which is then used as the list of 
> tests to be executed.
> The patches attached expose a configuration element named "testPreprocessor" 
> the default value of which is "none". User can choose to set it to a value 
> matching the format 
> "<fully-qualified-class-name>[<group-id>:<artifact-id>:<version>]" and have 
> the class loaded and called with list of tests to be run. The list of tests 
> returned by the call is then considered for execution.
> Patch description:
> The feature is done in 2 patches. Description follows:
> 0001-Adds-test-list-preprocessor-support-which-loads-an-o.patch
> This patch actually adds the feature and unit tests. It adds the interface, 
> an abstraction that encapsulates aforementioned configuration, booter 
> serialization/deserialization, directory-scanner changes etc. The changes 
> have effect in both forked and in-process execution mode.
> 0002-Integration-test-for-preprocessor.-2-modules-one-pro.patch
> This patch adds an integration test for preprocessor feature. The integration 
> test uses a 2 module setup, where the first module implements the 
> TestListPreprocessor interface which selects only even indexed test classes 
> from the list passed in. The second module(which depends on first) uses the 
> artifact from first and uses the following configuration:
> --------------------
> <configuration>
>   
> <testPreprocessor>test.preprocessor.EvenTestOnlyPreprocessor[org.apache.maven.plugins.surefire:preprocessor-impl:1.0-SNAPSHOT]</testPreprocessor>
> </configuration>
> --------------------
> The test then asserts that only 2(0th and 2nd) of the 4 test classes the 
> second module has are executed.
> The patches are created on a git-svn clone using format-patch, please use 
> 'patch -p1 < 0001-Adds...'(while in the trunk directory) to apply the patches 
> on svn repository. If using git-svn, git-am can be directly be invoked.
> The patches are done over 
> http://svn.apache.org/repos/asf/maven/surefire/trunk@1091357 (trunk HEAD) so 
> should apply cleanly on any recent enough revision.
> ===============================================================================
> Context:
> http://stackoverflow.com/questions/5124823/reducing-the-build-time-hudson
> http://code.google.com/p/tlb/issues/detail?id=1
> http://test-load-balancer.github.com



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

Reply via email to