# TestOptions

# TestOptions

<br />

```
public interface TestOptions
```

<br />

*** ** * ** ***

Options for running tests.

## Summary

|                                                                                                                                                                                                                                            ### Public methods                                                                                                                                                                                                                                             |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [emulatorControl](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#emulatorControl(kotlin.Function1))`(` ` @`[ExtensionFunctionType](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-extension-function-type/index.html)` @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` Function1<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[EmulatorControl](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/EmulatorControl)`, `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`> action` `)`                                                                                  |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [emulatorSnapshots](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#emulatorSnapshots(kotlin.Function1))`(` ` @`[ExtensionFunctionType](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-extension-function-type/index.html)` @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` Function1<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[EmulatorSnapshots](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/EmulatorSnapshots)`, `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`> action` `)`                                                                          |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) ~~[failureRetention](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#failureRetention(kotlin.Function1))~~`(` ` @`[ExtensionFunctionType](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-extension-function-type/index.html)` @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` Function1<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[FailureRetention](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/FailureRetention)`, `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`> action` `)` **This method is deprecated.**Renamed to emulatorSnapshots               |
| `abstract boolean`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | [getAnimationsDisabled](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#getAnimationsDisabled())`()` Disables animations during instrumented tests you run from the command line.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[NamedDomainObjectContainer](https://docs.gradle.org/current/javadoc/org/gradle/api/NamedDomainObjectContainer.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[DeviceGroup](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/DeviceGroup)`>`                       | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [getDeviceGroups](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#getDeviceGroups())`()` List of DeviceGroups that can be run through connected check, using the Unified Test Platform.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[ExtensiblePolymorphicDomainObjectContainer](https://docs.gradle.org/current/javadoc/org/gradle/api/ExtensiblePolymorphicDomainObjectContainer.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Device](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/Device)`>` | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [getDevices](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#getDevices())`()` List of test devices for this project for use with the Unified Test Platform                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[EmulatorControl](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/EmulatorControl)                                                                                                                                                                                                                                                     | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [getEmulatorControl](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#getEmulatorControl())`()` Configures Android Emulator Grpc Access                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[EmulatorSnapshots](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/EmulatorSnapshots)                                                                                                                                                                                                                                                 | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [getEmulatorSnapshots](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#getEmulatorSnapshots())`()` Configures Android Test Retention.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                                                                                                                                                                                                                                                                                       | [getExecution](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#getExecution())`()` Specifies whether to use on-device test orchestration.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[FailureRetention](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/FailureRetention)                                                                                                                                                                                                                                                   | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [getFailureRetention](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#getFailureRetention())`()`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[ManagedDevices](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/ManagedDevices)                                                                                                                                                                                                                                                       | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [getManagedDevices](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#getManagedDevices())`()` Configures Gradle Managed Devices for use in testing with the Unified test platform.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `abstract `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                                                                                                                                                                                                                                                                                                                                                                                                   | [getReportDir](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#getReportDir())`()` Name of the reports directory.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `abstract `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                                                                                                                                                                                                                                                                                                                                                                                                   | [getResultsDir](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#getResultsDir())`()` Name of the results directory.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `abstract `[Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html)                                                                                                                                                                                                                                                                                                                                                                                                 | [getTargetSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#getTargetSdk())`()` Specifies value that overrides target sdk version number for tests in libraries.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `abstract `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                                                                                                                                                                                                                                                                                                                                                                                                   | [getTargetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#getTargetSdkPreview())`()` Specifies value that overrides target sdk preview number for tests in libraries.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[UnitTestOptions](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/UnitTestOptions)                                                                                                                                                                                                                                                     | [getUnitTests](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#getUnitTests())`()` Options for controlling unit tests execution.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [managedDevices](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#managedDevices(kotlin.Function1))`(` ` @`[ExtensionFunctionType](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-extension-function-type/index.html)` @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` Function1<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[ManagedDevices](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/ManagedDevices)`, `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`> action` `)` Configures Gradle Managed Devices for use in testing with the Unified test platform. |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | [setAnimationsDisabled](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#setAnimationsDisabled(kotlin.Boolean))`(boolean animationsDisabled)` Disables animations during instrumented tests you run from the command line.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | [setExecution](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#setExecution(kotlin.String))`(@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` execution)` Specifies whether to use on-device test orchestration.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | [setReportDir](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#setReportDir(kotlin.String))`(`[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` reportDir)` Name of the reports directory.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | [setResultsDir](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#setResultsDir(kotlin.String))`(`[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` resultsDir)` Name of the results directory.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | [setTargetSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#setTargetSdk(kotlin.Int))`(`[Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html)` targetSdk)` Specifies value that overrides target sdk version number for tests in libraries.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | [setTargetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#setTargetSdkPreview(kotlin.String))`(`[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` targetSdkPreview)` Specifies value that overrides target sdk preview number for tests in libraries.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | [unitTests](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#unitTests(kotlin.Function1))`(` ` @`[ExtensionFunctionType](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-extension-function-type/index.html)` @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` Function1<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[UnitTestOptions](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/UnitTestOptions)`, `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`> action` `)` Options for controlling unit tests execution.                                                                                                                                        |

## Public methods

### emulatorControl

```
@Incubating
abstract void emulatorControl(
    @ExtensionFunctionType @NonNull Function1<@NonNull EmulatorControl, Unit> action
)
```  

### emulatorSnapshots

```
@Incubating
abstract void emulatorSnapshots(
    @ExtensionFunctionType @NonNull Function1<@NonNull EmulatorSnapshots, Unit> action
)
```  

### failureRetention

```
@Incubating
abstract void [failureRetention](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#failureRetention(kotlin.Function1))(
    @ExtensionFunctionType @NonNull Function1<@NonNull FailureRetention, Unit> action
)
```
| **This method is deprecated.**   
Renamed to emulatorSnapshots  

### getAnimationsDisabled

```
abstract boolean getAnimationsDisabled()
```

Disables animations during instrumented tests you run from the command line.

If you set this property to`true`, running instrumented tests with Gradle from the command line executes`am instrument`with the`--no-window-animation`flag. By default, this property is set to`false`.

This property does not affect tests that you run using Android Studio. To learn more about running tests from the command line, see[Test from the Command Line](https://d.android.com/studio/test/command-line.html).  

### getDeviceGroups

```
@Incubating
abstract @NonNull NamedDomainObjectContainer<@NonNull DeviceGroup> getDeviceGroups()
```

List of DeviceGroups that can be run through connected check, using the Unified Test Platform.

DeviceGroups with individual devices are added automatically, with the same name of the individual device.

These APIs are experimental and may change without notice.

[deviceGroups](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#deviceGroups())is deprecated, use managedDevices.groups to specify groups of Gradle Managed Devices.  

### getDevices

```
@Incubating
abstract @NonNull ExtensiblePolymorphicDomainObjectContainer<@NonNull Device> getDevices()
```

List of test devices for this project for use with the Unified Test Platform

These APIs are experimental and may change without notice.

[devices](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/TestOptions#devices())is deprecated, use managedDevices.devices to specify Gradle Managed Devices  

### getEmulatorControl

```
@Incubating
abstract @NonNull EmulatorControl getEmulatorControl()
```

Configures Android Emulator Grpc Access

Android Emulator Grpc Access will make it possible to interact with the emulator over gRPC  

```text
android {
    emulatorControl {
      enable true
      secondsValid 180
      allowedEndpoints.addAll(
          "/android.emulation.control.EmulatorController/getStatus",
          "/android.emulation.control.EmulatorController/getVmState")
    }
}
```  

### getEmulatorSnapshots

```
@Incubating
abstract @NonNull EmulatorSnapshots getEmulatorSnapshots()
```

Configures Android Test Retention.

Android Test Retention automatically takes emulator snapshots on test failures. It can only work with Unified Test Platform (UTP).  

```text
android {
  testOptions {
    emulatorSnapshots {
      enableForTestFailures true
      maxSnapshotsForTestFailures 2
      compressSnapshots false
    }
  }
}
```  

### getExecution

```
abstract @NonNull String getExecution()
```

Specifies whether to use on-device test orchestration.

If you want to[use Android Test Orchestrator](https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator)you need to specify`"ANDROID_TEST_ORCHESTRATOR"`, as shown below. By default, this property is set to`"HOST"`, which disables on-device orchestration.  

```scdoc
android {
  testOptions {
    execution 'ANDROID_TEST_ORCHESTRATOR'
  }
}
```

since 3.0.0  

### getFailureRetention

```
@Incubating
abstract @NonNull FailureRetention getFailureRetention()
```  

### getManagedDevices

```
@Incubating
abstract @NonNull ManagedDevices getManagedDevices()
```

Configures Gradle Managed Devices for use in testing with the Unified test platform.  

### getReportDir

```
abstract String getReportDir()
```

Name of the reports directory.  

### getResultsDir

```
abstract String getResultsDir()
```

Name of the results directory.  

### getTargetSdk

```
abstract Integer getTargetSdk()
```

Specifies value that overrides target sdk version number for tests in libraries. Default value is set to minSdk. Important: Setting this value will cause an error for application and other module types.  

### getTargetSdkPreview

```
abstract String getTargetSdkPreview()
```

Specifies value that overrides target sdk preview number for tests in libraries. Default value is empty. Important: Setting this value will cause an error for application and other module types.  

### getUnitTests

```
abstract @NonNull UnitTestOptions getUnitTests()
```

Options for controlling unit tests execution.  

### managedDevices

```
@Incubating
abstract void managedDevices(
    @ExtensionFunctionType @NonNull Function1<@NonNull ManagedDevices, Unit> action
)
```

Configures Gradle Managed Devices for use in testing with the Unified test platform.  

### setAnimationsDisabled

```
abstract void setAnimationsDisabled(boolean animationsDisabled)
```

Disables animations during instrumented tests you run from the command line.

If you set this property to`true`, running instrumented tests with Gradle from the command line executes`am instrument`with the`--no-window-animation`flag. By default, this property is set to`false`.

This property does not affect tests that you run using Android Studio. To learn more about running tests from the command line, see[Test from the Command Line](https://d.android.com/studio/test/command-line.html).  

### setExecution

```
abstract void setExecution(@NonNull String execution)
```

Specifies whether to use on-device test orchestration.

If you want to[use Android Test Orchestrator](https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator)you need to specify`"ANDROID_TEST_ORCHESTRATOR"`, as shown below. By default, this property is set to`"HOST"`, which disables on-device orchestration.  

```scdoc
android {
  testOptions {
    execution 'ANDROID_TEST_ORCHESTRATOR'
  }
}
```

since 3.0.0  

### setReportDir

```
abstract void setReportDir(String reportDir)
```

Name of the reports directory.  

### setResultsDir

```
abstract void setResultsDir(String resultsDir)
```

Name of the results directory.  

### setTargetSdk

```
abstract void setTargetSdk(Integer targetSdk)
```

Specifies value that overrides target sdk version number for tests in libraries. Default value is set to minSdk. Important: Setting this value will cause an error for application and other module types.  

### setTargetSdkPreview

```
abstract void setTargetSdkPreview(String targetSdkPreview)
```

Specifies value that overrides target sdk preview number for tests in libraries. Default value is empty. Important: Setting this value will cause an error for application and other module types.  

### unitTests

```
abstract void unitTests(
    @ExtensionFunctionType @NonNull Function1<@NonNull UnitTestOptions, Unit> action
)
```

Options for controlling unit tests execution.