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, org.gradle.util.Configurable<Task>
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_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Registers a test listener with this task.
    void
    Registers a output listener with this task.
    void
    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
    Adds a closure to be notified before a test suite is executed.
    void
    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>
    Creates test executer.
    protected abstract org.gradle.api.internal.tasks.testing.TestExecutionSpec
    Creates test execution specification.
    void
     
    Returns the root directory property for the test results in internal binary format.
    Returns the root folder for the test results in internal binary format.
    protected org.gradle.internal.operations.BuildOperationExecutor
     
    boolean
    Specifies whether the build should break when the verifications performed by this task fail.
    protected org.gradle.internal.remote.internal.inet.InetAddressFactory
     
    protected org.gradle.internal.reflect.Instantiator
     
    protected org.gradle.internal.event.ListenerManager
     
    protected org.gradle.internal.logging.progress.ProgressLoggerFactory
     
    The reports that this task potentially produces.
    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
     
    void
    onOutput(Closure closure)
    Adds a closure to be notified when output from the test received.
    void
    Unregisters a test listener with this task.
    void
    Unregisters a test output listener with this task.
    reports(Closure closure)
    Configures the reports that this task potentially produces.
    reports(Action<? super TestTaskReports> configureAction)
    Configures the reports that this task potentially produces.
    void
    setBinResultsDir(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.
    void
    Allows configuring the logging of the test execution, for example log eagerly the standard output, etc.
    void
    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

    newInputDirectory, newInputFile, newOutputDirectory, newOutputFile

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

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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • AbstractTestTask

      public AbstractTestTask()
  • Method Details

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