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:
    `Comparable<Task>`, `org.gradle.api.internal.DynamicObjectAware`, `org.gradle.api.internal.IConventionAware`, `org.gradle.api.internal.TaskInternal`, `ExtensionAware`, `Reporting<TestTaskReports>`, `Task`, `VerificationTask`, `Configurable<Task>`
  Direct Known Subclasses:
    `Test`, `XCTest`

      @DisableCachingByDefault(because="Abstract super-class, not to be instantiated directly")
      public abstract class AbstractTestTask
      extends org.gradle.api.internal.ConventionTask
      implements VerificationTask, Reporting<TestTaskReports>

  Abstract class for all test tasks.
  - 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 Deprecated 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​(Closure closure)` | Adds a closure to be notified after a test suite has executed.
    `void` | `afterTest​(Closure closure)` | Adds a closure to be notified after a test has executed.
    `void` | `beforeSuite​(Closure closure)` | Adds a closure to be notified before a test suite is executed.
    `void` | `beforeTest​(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.
    `File` | `getBinResultsDir()` | Deprecated. Use `getBinaryResultsDirectory()` instead.
    `protected org.gradle.internal.operations.BuildOperationExecutor` | `getBuildOperationExecutor()` |
    `protected FileSystemOperations` | `getFileSystemOperations()` |
    `TestFilter` | `getFilter()` | Allows filtering tests for execution.
    `protected org.gradle.internal.nativeintegration.network.HostnameLookup` | `getHostnameLookup()` |
    `boolean` | `getIgnoreFailures()` | Specifies whether the build should break when the verifications performed by this task fail.
    `protected org.gradle.internal.reflect.Instantiator` | `getInstantiator()` |
    `protected org.gradle.internal.event.ListenerManager` | `getListenerManager()` |
    `protected List<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​(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​(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​(File binResultsDir)` | Deprecated. Use `getBinaryResultsDirectory()`.set() instead.
    `void` | `setIgnoreFailures​(boolean ignoreFailures)` | Specifies whether the build should break when the verifications performed by this task fail.
    `AbstractTestTask` | `setTestNameIncludePatterns​(List<String> testNamePattern)` | Sets the test name patterns to be included in execution.
    `void` | `testLogging​(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.ConventionTask

      `conventionMapping, conventionMapping, getConventionMapping`

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

      `compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService`

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

      `appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getConvention, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, setImpliesSubProjects`

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

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

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

      `doNotTrackState, getConvention, notCompatibleWithConfigurationCache`

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

    - #### getHostnameLookup

          @Inject
          protected org.gradle.internal.nativeintegration.network.HostnameLookup getHostnameLookup()

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

    - #### getFileSystemOperations

          @Inject
          protected FileSystemOperations getFileSystemOperations()

    - #### createTestExecuter

          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

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

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

    - #### getBinResultsDir

          @ReplacedBy("binaryResultsDirectory")
          @Deprecated
          public File getBinResultsDir()

      Deprecated.
      Use `getBinaryResultsDirectory()` instead. This method will be removed in Gradle 8.0.
      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

          @Deprecated
          public void setBinResultsDir​(File binResultsDir)

      Deprecated.
      Use `getBinaryResultsDirectory()`.set() instead. This method will be removed in Gradle 8.0.
      Sets the root folder for the test results in internal binary format.
      Parameters:
        `binResultsDir` - The root folder

    - #### getBinaryResultsDirectory

          @OutputDirectory
          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​(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​(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​(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​(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​(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​(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
          protected List<String> getNoMatchingTestErrorReasons()

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

    - #### setTestNameIncludePatterns

          public AbstractTestTask setTestNameIncludePatterns​(List<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​(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