# Interface TestFilter

@Incubating public interface TestFilter
Allows filtering tests for execution. Some examples:

      apply plugin: 'java'

      test {
          filter {
             //specific test method
             includeTestsMatching "org.gradle.SomeTest.someSpecificFeature"

             //specific test method, use wildcard for packages
             includeTestsMatching "*SomeTest.someSpecificFeature"

             //specific test class
             includeTestsMatching "org.gradle.SomeTest"

             //specific test class, wildcard for packages
             includeTestsMatching "*.SomeTest"

             //all classes in package, recursively
             includeTestsMatching "com.gradle.tooling.*"

             //all integration tests, by naming convention
             includeTestsMatching "*IntegTest"

             //only ui tests from integration tests, by some naming convention
             includeTestsMatching "*IntegTest*ui"

             //specific test class and test method
             includeTest "org.gradle.SomeTest", "someTestMethod"
          }
      }

Since:
  1.10

## Method Summary

Modifier and Type
Method
Description
`Set<String>`
`getIncludePatterns()`
Returns the included test name patterns.
`TestFilter`
`includeTest(String className, String methodName)`
Add a test method specified by test class name and method name.
`TestFilter`
`includeTestsMatching(String testNamePattern)`
Appends a test name pattern to the filter.
`boolean`
`isFailOnNoMatchingTests()`
Returns whether the task should fail if no matching tests where found.
`void`
`setFailOnNoMatchingTests(boolean failOnNoMatchingTests)`
Let the test task fail if a filter configuration was provided but no test matched the given configuration.
`TestFilter`
`setIncludePatterns(String... testNamePatterns)`
Sets the test name patterns to be included in the filter.

## Method Details

### includeTestsMatching

TestFilter includeTestsMatching(String testNamePattern)
Appends a test name pattern to the filter. Wildcard '*' is supported, either test method name or class name is supported. Examples of test names: "com.foo.FooTest.someMethod", "com.foo.FooTest", "*FooTest*", "com.foo*". See examples in the docs for `TestFilter`.

Parameters:
  `testNamePattern` - test name pattern to include, can be class or method name, can contain wildcard '*'
Returns:
  this filter object

### getIncludePatterns

@Input Set<String> getIncludePatterns()
Returns the included test name patterns. They can be class or method names and may contain wildcard '*'. Test name patterns can be appended via `includeTestsMatching(String)` or set via `setIncludePatterns(String...)`.

Returns:
  included test name patterns

### setIncludePatterns

TestFilter setIncludePatterns(String... testNamePatterns)
Sets the test name patterns to be included in the filter. Wildcard '*' is supported. Replaces any existing test name patterns.

Parameters:
  `testNamePatterns` - class or method name patterns to set, may contain wildcard '*'
Returns:
  this filter object

### includeTest

TestFilter includeTest(String className, String methodName)
Add a test method specified by test class name and method name.

Parameters:
  `className` - the class name of the test to execute
  `methodName` - the method name of the test to execute. Can be null.
Returns:
  this filter object

### setFailOnNoMatchingTests

void setFailOnNoMatchingTests(boolean failOnNoMatchingTests)
Let the test task fail if a filter configuration was provided but no test matched the given configuration.

Parameters:
  `failOnNoMatchingTests` - whether a test task should fail if no test is matching the filter configuration.

### isFailOnNoMatchingTests

@Input boolean isFailOnNoMatchingTests()
Returns whether the task should fail if no matching tests where found. The default is true.