[
http://jira.codehaus.org/browse/SUREFIRE-726?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=264155#action_264155
]
Janmejay Singh commented on SUREFIRE-726:
-----------------------------------------
It can easily be enhanced to allow injection of testPreprocessor declaration
via system-property.
As in, user has a maven plugin that hooks up in the lifecycle before test and
adds a system-property(for instance, surefire-test-preprocessor which has value
"test.preprocessor.EvenTestOnlyPreprocessor[org.apache.maven.plugins.surefire:preprocessor-impl:1.0-SNAPSHOT]")
and the AbstractSurefireMojo#testPreprocessor can first check for
configuration and if no config found, can check for the system-property and use
first one found.
This will also make it more flexible, because user can choose the strategy
before invoking the build(to choose a different implementation all the user has
to do is
-Dsurefire-test-preprocessor=test.preprocessor.EvenTestOnlyPreprocessor[org.apache.maven.plugins.surefire:preprocessor-impl:1.0-SNAPSHOT]).
> Test list preprocessor support for tests to be run
> --------------------------------------------------
>
> Key: SUREFIRE-726
> URL: http://jira.codehaus.org/browse/SUREFIRE-726
> Project: Maven Surefire
> Issue Type: New Feature
> Affects Versions: 2.8.2
> Reporter: Janmejay Singh
> Attachments:
> 0001-Adds-test-list-preprocessor-support-which-loads-an-o.patch,
> 0002-Integration-test-for-preprocessor.-2-modules-one-pro.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.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira