Excluding tests with command line pattern
-----------------------------------------

         Key: MSUREFIRE-135
         URL: http://jira.codehaus.org/browse/MSUREFIRE-135
     Project: Maven 2.x Surefire Plugin
        Type: New Feature

    Versions: 2.2    
 Environment: All environments running JUnit tests
    Reporter: Johannes Carlén


I'd like to be able to exclude certain tests from being run. An example of this 
could be a scenario where I'd like just the unit tests and not the integration 
tests to run. In our case, we name all integration test with the postfix 
"IntTest" instead of just "Test".

This is now possible through configuring the plugin in the pom, however it is 
not possible to decide at the command line if I just like to run some tests and 
not all.

Example of use with this implementation would be:
mvn -Dexclude=*IntTest test
which would run all tests - excluding those that ends with IntTest

The amount of code needed for implementation is minimal. In SurefirePlugin.java:

Just add a property - something like:

    /**
     * Specify this parameter to exclude test by their name. It follows
     * the same conventions as the <code>test</code> parameter.
     * 
     * @parameter expression="${exclude}"
     * 
     */
    private String exclude;

Add this code at line 527

                if ( this.exclude != null )
                {   
                    String exclude = "**/" + this.exclude + ".java";
                    excludes.add(exclude);
                    getLog().debug( "Excluding test with pattern :" + exclude );
                }

...and that's all.

-- 
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

Reply via email to