[ https://jira.codehaus.org/browse/SUREFIRE-726?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kristian Rosenvold updated SUREFIRE-726: ---------------------------------------- Fix Version/s: 3.0 > Test list preprocessor support for tests to be run > -------------------------------------------------- > > Key: SUREFIRE-726 > URL: https://jira.codehaus.org/browse/SUREFIRE-726 > Project: Maven Surefire > Issue Type: New Feature > Affects Versions: 2.9 > Reporter: Janmejay Singh > 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 is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira