Package org.gradle.api.tasks.testing

## Class AbstractTestTask

- java.lang.Object
- - org.gradle.api.internal.AbstractTask
  - - org.gradle.api.DefaultTask
    - - org.gradle.api.internal.ConventionTask
      - - org.gradle.api.tasks.testing.AbstractTestTask

- All Implemented Interfaces:
    `Reporting<TestTaskReports>`, `VerificationTask`
  Direct Known Subclasses:
    `Test`, `XCTest`

      public abstract class AbstractTestTask
      extends org.gradle.api.internal.ConventionTask
      implements VerificationTask, Reporting<TestTaskReports>

  Abstract class for all test task.
  - Support for test listeners
  - Support for reporting
  - Support for report linking in the console output

  Note: This abstract class is not intended for implementation by build script or plugin authors.

  Since:
    4.4

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.gradle.api.Task

      `Task.Namer`

  - ### Field Summary

    - ### Fields inherited from interface org.gradle.api.Task

      `TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractTestTask​()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addTestListener​(TestListener listener)` | Registers a test listener with this task.
    `void` | `addTestOutputListener​(TestOutputListener listener)` | Registers a output listener with this task.
    `void` | `afterSuite​(groovy.lang.Closure closure)` | Adds a closure to be notified after a test suite has executed.
    `void` | `afterTest​(groovy.lang.Closure closure)` | Adds a closure to be notified after a test has executed.
    `void` | `beforeSuite​(groovy.lang.Closure closure)` | Adds a closure to be notified before a test suite is executed.
    `void` | `beforeTest​(groovy.lang.Closure closure)` | Adds a closure to be notified before a test is executed.
    `protected abstract org.gradle.api.internal.tasks.testing.TestExecuter<? extends org.gradle.api.internal.tasks.testing.TestExecutionSpec>` | `createTestExecuter​()` | Creates test executer.
    `protected abstract org.gradle.api.internal.tasks.testing.TestExecutionSpec` | `createTestExecutionSpec​()` | Creates test execution specification.
    `void` | `executeTests​()` |
    `DirectoryProperty` | `getBinaryResultsDirectory​()` | Returns the root directory property for the test results in internal binary format.
    `java.io.File` | `getBinResultsDir​()` | Returns the root folder for the test results in internal binary format.
    `protected org.gradle.internal.operations.BuildOperationExecutor` | `getBuildOperationExecutor​()` |
    `TestFilter` | `getFilter​()` | Allows filtering tests for execution.
    `boolean` | `getIgnoreFailures​()` | Specifies whether the build should break when the verifications performed by this task fail.
    `protected org.gradle.internal.remote.internal.inet.InetAddressFactory` | `getInetAddressFactory​()` |
    `protected org.gradle.internal.reflect.Instantiator` | `getInstantiator​()` |
    `protected org.gradle.internal.event.ListenerManager` | `getListenerManager​()` |
    `protected java.util.List<java.lang.String>` | `getNoMatchingTestErrorReasons​()` | Returns the reasons for no matching test error.
    `protected org.gradle.internal.logging.progress.ProgressLoggerFactory` | `getProgressLoggerFactory​()` |
    `TestTaskReports` | `getReports​()` | The reports that this task potentially produces.
    `TestLoggingContainer` | `getTestLogging​()` | Allows to set options related to which test events are logged to the console, and on which detail level.
    `protected org.gradle.internal.logging.text.StyledTextOutputFactory` | `getTextOutputFactory​()` |
    `void` | `onOutput​(groovy.lang.Closure closure)` | Adds a closure to be notified when output from the test received.
    `void` | `removeTestListener​(TestListener listener)` | Unregisters a test listener with this task.
    `void` | `removeTestOutputListener​(TestOutputListener listener)` | Unregisters a test output listener with this task.
    `TestTaskReports` | `reports​(groovy.lang.Closure closure)` | Configures the reports that this task potentially produces.
    `TestTaskReports` | `reports​(Action<? super TestTaskReports> configureAction)` | Configures the reports that this task potentially produces.
    `void` | `setBinResultsDir​(java.io.File binResultsDir)` | Sets the root folder for the test results in internal binary format.
    `void` | `setIgnoreFailures​(boolean ignoreFailures)` | Specifies whether the build should break when the verifications performed by this task fail.
    `AbstractTestTask` | `setTestNameIncludePatterns​(java.util.List<java.lang.String> testNamePattern)` | Sets the test name patterns to be included in execution.
    `void` | `testLogging​(groovy.lang.Closure closure)` | Allows configuring the logging of the test execution, for example log eagerly the standard output, etc.
    `void` | `testLogging​(Action<? super TestLoggingContainer> action)` | Allows configuring the logging of the test execution, for example log eagerly the standard output, etc.

    - ### Methods inherited from class org.gradle.api.internal.AbstractTask

      `appendParallelSafeAction, compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getAsDynamicObject, getConvention, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getIdentityPath, getImpliesSubProjects, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOnlyIf, getOutputs, getPath, getProject, getServices, getShouldRunAfter, getStandardOutputCapture, getState, getTaskActions, getTaskDependencies, getTaskIdentity, getTemporaryDir, getTemporaryDirFactory, getTimeout, hasProperty, hasTaskActions, injectIntoNewInstance, isEnabled, isHasCustomActions, mustRunAfter, onlyIf, onlyIf, prependParallelSafeAction, property, replaceLogger, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setImpliesSubProjects, setMustRunAfter, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, toString`

    - ### Methods inherited from class org.gradle.api.internal.ConventionTask

      `conventionMapping, conventionMapping, getConventionMapping`

    - ### Methods inherited from class org.gradle.api.DefaultTask

      `newInputDirectory, newInputFile, newOutputDirectory, newOutputFile`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### AbstractTestTask

          public AbstractTestTask​()

  - ### Method Detail

    - #### getProgressLoggerFactory

          @Inject
          protected org.gradle.internal.logging.progress.ProgressLoggerFactory getProgressLoggerFactory​()

    - #### getTextOutputFactory

          @Inject
          protected org.gradle.internal.logging.text.StyledTextOutputFactory getTextOutputFactory​()

    - #### getInetAddressFactory

          @Inject
          protected org.gradle.internal.remote.internal.inet.InetAddressFactory getInetAddressFactory​()

    - #### getBuildOperationExecutor

          @Inject
          protected org.gradle.internal.operations.BuildOperationExecutor getBuildOperationExecutor​()

    - #### getInstantiator

          @Inject
          protected org.gradle.internal.reflect.Instantiator getInstantiator​()

    - #### getListenerManager

          @Inject
          protected org.gradle.internal.event.ListenerManager getListenerManager​()

    - #### createTestExecuter

          @Incubating
          protected abstract org.gradle.api.internal.tasks.testing.TestExecuter<? extends org.gradle.api.internal.tasks.testing.TestExecutionSpec> createTestExecuter​()

      Creates test executer. For internal use only.
      Since:
        4.4

    - #### createTestExecutionSpec

          @Incubating
          protected abstract org.gradle.api.internal.tasks.testing.TestExecutionSpec createTestExecutionSpec​()

      Creates test execution specification. For internal use only.
      Since:
        4.4

    - #### getBinResultsDir

          @OutputDirectory
          @Incubating
          public java.io.File getBinResultsDir​()

      Returns the root folder for the test results in internal binary format.
      Returns:
        the test result directory, containing the test results in binary format.

    - #### setBinResultsDir

          @Incubating
          public void setBinResultsDir​(java.io.File binResultsDir)

      Sets the root folder for the test results in internal binary format.
      Parameters:
        `binResultsDir` - The root folder

    - #### getBinaryResultsDirectory

          @Internal
          @Incubating
          public DirectoryProperty getBinaryResultsDirectory​()

      Returns the root directory property for the test results in internal binary format.
      Since:
        4.4

    - #### addTestListener

          public void addTestListener​(TestListener listener)

      Registers a test listener with this task. Consider also the following handy methods for quicker hooking into test execution: `beforeTest(groovy.lang.Closure)`, `afterTest(groovy.lang.Closure)`, `beforeSuite(groovy.lang.Closure)`, `afterSuite(groovy.lang.Closure)`

      This listener will NOT be notified of tests executed by other tasks. To get that behavior, use `Gradle.addListener(Object)`.

      Parameters:
        `listener` - The listener to add.

    - #### addTestOutputListener

          public void addTestOutputListener​(TestOutputListener listener)

      Registers a output listener with this task. Quicker way of hooking into output events is using the `onOutput(groovy.lang.Closure)` method.
      Parameters:
        `listener` - The listener to add.

    - #### removeTestListener

          public void removeTestListener​(TestListener listener)

      Unregisters a test listener with this task. This method will only remove listeners that were added by calling `addTestListener(TestListener)` on this task. If the listener was registered with Gradle using `Gradle.addListener(Object)` this method will not do anything. Instead, use `Gradle.removeListener(Object)`.
      Parameters:
        `listener` - The listener to remove.

    - #### removeTestOutputListener

          public void removeTestOutputListener​(TestOutputListener listener)

      Unregisters a test output listener with this task. This method will only remove listeners that were added by calling `addTestOutputListener(TestOutputListener)` on this task. If the listener was registered with Gradle using `Gradle.addListener(Object)` this method will not do anything. Instead, use `Gradle.removeListener(Object)`.
      Parameters:
        `listener` - The listener to remove.

    - #### getIgnoreFailures

          @Internal
          public boolean getIgnoreFailures​()

      Specifies whether the build should break when the verifications performed by this task fail.
      Specified by:
        `getIgnoreFailures` in interface `VerificationTask`
      Returns:
        false, when the build should break on failure, true when the failures should be ignored.

    - #### setIgnoreFailures

          public void setIgnoreFailures​(boolean ignoreFailures)

      Specifies whether the build should break when the verifications performed by this task fail.
      Specified by:
        `setIgnoreFailures` in interface `VerificationTask`
      Parameters:
        `ignoreFailures` - false to break the build on failure, true to ignore the failures. The default is false.

    - #### onOutput

          public void onOutput​(groovy.lang.Closure closure)

      Adds a closure to be notified when output from the test received. A `TestDescriptor` and `TestOutputEvent` instance are passed to the closure as a parameter.

           apply plugin: 'java'

           test {
              onOutput { descriptor, event ->
                  if (event.destination == TestOutputEvent.Destination.StdErr) {
                      logger.error("Test: " + descriptor + ", error: " + event.message)
                  }
              }
           }

      Parameters:
        `closure` - The closure to call.

    - #### beforeSuite

          public void beforeSuite​(groovy.lang.Closure closure)

      Adds a closure to be notified before a test suite is executed. A `TestDescriptor` instance is passed to the closure as a parameter.

      This method is also called before any test suites are executed. The provided descriptor will have a null parent suite.

      Parameters:
        `closure` - The closure to call.

    - #### afterSuite

          public void afterSuite​(groovy.lang.Closure closure)

      Adds a closure to be notified after a test suite has executed. A `TestDescriptor` and `TestResult` instance are passed to the closure as a parameter.

      This method is also called after all test suites are executed. The provided descriptor will have a null parent suite.

      Parameters:
        `closure` - The closure to call.

    - #### beforeTest

          public void beforeTest​(groovy.lang.Closure closure)

      Adds a closure to be notified before a test is executed. A `TestDescriptor` instance is passed to the closure as a parameter.
      Parameters:
        `closure` - The closure to call.

    - #### afterTest

          public void afterTest​(groovy.lang.Closure closure)

      Adds a closure to be notified after a test has executed. A `TestDescriptor` and `TestResult` instance are passed to the closure as a parameter.
      Parameters:
        `closure` - The closure to call.

    - #### getTestLogging

          @Internal
          public TestLoggingContainer getTestLogging​()

      Allows to set options related to which test events are logged to the console, and on which detail level. For example, to show more information about exceptions use:

           apply plugin: 'java'

           test.testLogging {
               exceptionFormat "full"
           }

      For further information see `TestLoggingContainer`.
      Returns:
        this

    - #### testLogging

          public void testLogging​(groovy.lang.Closure closure)

      Allows configuring the logging of the test execution, for example log eagerly the standard output, etc.

           apply plugin: 'java'

           // makes the standard streams (err and out) visible at console when running tests
           test.testLogging {
              showStandardStreams = true
           }

      Parameters:
        `closure` - configure closure

    - #### testLogging

          public void testLogging​(Action<? super TestLoggingContainer> action)

      Allows configuring the logging of the test execution, for example log eagerly the standard output, etc.

           apply plugin: 'java'

           // makes the standard streams (err and out) visible at console when running tests
           test.testLogging {
              showStandardStreams = true
           }

      Parameters:
        `action` - configure action
      Since:
        3.5

    - #### executeTests

          public void executeTests​()

    - #### getNoMatchingTestErrorReasons

          @Internal
          @Incubating
          protected java.util.List<java.lang.String> getNoMatchingTestErrorReasons​()

      Returns the reasons for no matching test error.
      Since:
        4.5

    - #### setTestNameIncludePatterns

          @Incubating
          public AbstractTestTask setTestNameIncludePatterns​(java.util.List<java.lang.String> testNamePattern)

      Sets the test name patterns to be included in execution. Classes or method names are supported, wildcard '*' is supported. For more information see the user guide chapter on testing. For more information on supported patterns see `TestFilter`

    - #### getReports

          public TestTaskReports getReports​()

      The reports that this task potentially produces.
      Specified by:
        `getReports` in interface `Reporting<TestTaskReports>`
      Returns:
        The reports that this task potentially produces

    - #### reports

          public TestTaskReports reports​(groovy.lang.Closure closure)

      Configures the reports that this task potentially produces.
      Specified by:
        `reports` in interface `Reporting<TestTaskReports>`
      Parameters:
        `closure` - The configuration
      Returns:
        The reports that this task potentially produces

    - #### reports

          public TestTaskReports reports​(Action<? super TestTaskReports> configureAction)

      Configures the reports that this task potentially produces.
      Specified by:
        `reports` in interface `Reporting<TestTaskReports>`
      Parameters:
        `configureAction` - The configuration
      Returns:
        The reports that this task potentially produces

    - #### getFilter

          public TestFilter getFilter​()

      Allows filtering tests for execution.
      Returns:
        filter object
      Since:
        1.10