Package org.gradle.api.tasks.testing

# Interface TestFilter

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

       apply plugin: 'java'

       test {
           filter {
              //specific test class, this can match 'SomeTest' class and corresponding method under any package
              includeTestsMatching "SomeTest"
              includeTestsMatching "SomeTest.someTestMethod*"

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

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

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

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

              //exclude a specific test by its name
              excludeTestsMatching "*canDoSomethingSpecific"
              //excluding tests by name also works for test names which have spaces
              excludeTestsMatching "*can do something specific"
           }
       }

Since:
  1.10

- ## Method Summary

  Modifier and Type
  Method
  Description
  `TestFilter`
  `excludeTest(String className, String methodName)`
  Excludes a test method specified by test class name and method name.
  `TestFilter`
  `excludeTestsMatching(String testNamePattern)`
  Appends a test name pattern to the exclusion filter.
  `Set<String>`
  `getExcludePatterns()`
  Returns the excluded test name patterns.
  `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 inclusion filter.
  `boolean`
  `isFailOnNoMatchingTests()`
  Returns whether the task should fail if no matching tests where found.
  `TestFilter`
  `setExcludePatterns(String... testNamePatterns)`
  Sets the test name patterns to be excluded in the filter.
  `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 inclusion 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

  - ### excludeTestsMatching

    TestFilter excludeTestsMatching(String testNamePattern)
    Appends a test name pattern to the exclusion 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*", "*someTestMethod". See examples in the docs for `TestFilter`.
    Parameters:
      `testNamePattern` - test name pattern to exclude, can be class or method name, can contain wildcard '*'
    Returns:
      this filter object
    Since:
      5.0

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

  - ### getExcludePatterns

    @Input Set<String> getExcludePatterns()
    Returns the excluded test name patterns. They can be class or method names and may contain wildcard '*'. Test name patterns can be appended via `excludeTestsMatching(String)` or set via `setExcludePatterns(String...)`.
    Returns:
      included test name patterns
    Since:
      5.0

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

  - ### setExcludePatterns

    TestFilter setExcludePatterns(String... testNamePatterns)
    Sets the test name patterns to be excluded 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
    Since:
      5.0

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

  - ### excludeTest

    TestFilter excludeTest(String className, String methodName)
    Excludes a test method specified by test class name and method name.
    Parameters:
      `className` - the class name of the test to exclude
      `methodName` - the method name of the test to exclude. Can be null.
    Returns:
      this filter object
    Since:
      5.0

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