# TestVariant

[View Source](https://cs.android.com/search?q=file:com/android/build/api/variant/TestVariant.kt+class:com.android.build.api.variant.TestVariant) Added in 4.2.0


```
interface TestVariant : GeneratesTestApk, Variant
```

<br />

*** ** * ** ***

Model for test components that only contains build-time properties.

This is for components associated with the `com.android.test` plugin. This is not for test components associated with variants. For these see `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/TestComponent`.

See `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component` and `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant` for more information.

## Summary

| ### Public properties |
|---|---|
| `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Property.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/TestVariant#applicationId()` Variant's application ID as present in the final manifest file of the APK. |
| `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Provider.html<https://docs.gradle.org/current/javadoc/org/gradle/api/file/Directory.html>` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/TestVariant#testedApks()` The `https://docs.gradle.org/current/javadoc/org/gradle/api/file/Directory.html` containing the APKs of the application under test. |
| `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Provider.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/TestVariant#testedApplicationId()` The application of the app under tests. |

### Inherited functions

From [com.android.build.api.variant.Component](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component) `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` `@https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html
https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component#computeTaskName(kotlin.String,kotlin.String)(action: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, subject: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`

Utility method to create unique task name for component.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` `@https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html
https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component#configureJavaCompileTask(kotlin.Function1)(action: (https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/compile/JavaCompile.html) -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`

Runs an action to configure Components's java compilation `https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/compile/JavaCompile.html` task.
`https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html` `@https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html
https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component#getResolvableConfiguration(kotlin.String)(sourceSetConfigurationsAffix: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`

Access to the component's resolvable configuration corresponding to the source set configurations added via `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/AndroidComponentsExtension#addSourceSetConfigurations(kotlin.String)`.
From [com.android.build.api.variant.HasAndroidResources](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/HasAndroidResources) `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ResValue.Key` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/HasAndroidResources#makeResValueKey(kotlin.String,kotlin.String)(type: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, name: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`

Make a `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ResValue.Key` to interact with `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/HasAndroidResources#resValues()`'s `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html`
From [com.android.build.api.variant.Variant](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant) `T?` `<T : https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant#getExtension(java.lang.Class)(type: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html<T>)`

Returns an extension object registered via the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantBuilder#registerExtension(java.lang.Class,kotlin.Any)` API or null if none were registered under the passed `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant#getExtension(java.lang.Class)`.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` `@https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html
https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant#missingDimensionStrategy(kotlin.String,kotlin.Array)(
dimension: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html,
vararg requestedValues: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html
)`

Set up a new matching request for a given flavor dimension and value.

### Inherited properties

From [com.android.build.api.variant.Component](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component) `https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component#annotationProcessorConfiguration()`

Access to the variant's annotation processor `https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html`; for example, the debugAnnotationProcessor `https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html` for the debug variant.
`https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/Artifacts` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component#artifacts()`

Access to the variant's buildable artifacts for build customization.
`https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileCollection.html` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component#compileClasspath()`

Access to the variant's compile classpath.
`https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component#compileConfiguration()`

Access to the variant's compile `https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html`; for example, the debugCompileClasspath `https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html` for the debug variant.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component#debuggable()`

Whether the produced artifacts will be debuggable
`https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Instrumentation` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component#instrumentation()`

Access to the variant's instrumentation options.
`https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/JavaCompilation?` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component#javaCompilation()`

Access to the variant's java compilation options.
`https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/LifecycleTasks` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component#lifecycleTasks()`

Provides access to the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/LifecycleTasks` created for this component.
`https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Provider.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component#namespace()`

The namespace of the generated R and BuildConfig classes.
`https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component#runtimeConfiguration()`

Access to the variant's runtime `https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html`; for example, the debugRuntimeClasspath `https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html` for the debug variant.
`https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Sources` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component#sources()`

Access to variant's source files.
From [com.android.build.api.variant.ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity) `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html?` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity#buildType()`

Build type name.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html?` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity#flavorName()`

The multi-flavor name of the variant.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity#name()`

Component's name.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>>` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity#productFlavors()`

List of flavor names.
From [com.android.build.api.variant.GeneratesApk](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/GeneratesApk) `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/AndroidResources` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/GeneratesApk#androidResources()`

Variant's android resources processing configuration, initialized by the corresponding global DSL element.
`https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Dexing` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/GeneratesApk#dexing()`

Variant's specific dexing options
`https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/AndroidVersion` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/GeneratesApk#minSdk()`

Min SDK version for this variant
`https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ApkOutputProviders` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/GeneratesApk#outputProviders()`

Provides access to built artifacts output(e.g. APK) produced by this Variant.
`https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ApkPackaging` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/GeneratesApk#packaging()`

Variant's packagingOptions, initialized by the corresponding global DSL element.
`https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Renderscript?` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/GeneratesApk#renderscript()`

Variant specific settings for the renderscript compiler.
`https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/AndroidVersion` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/GeneratesApk#targetSdk()`

Target SDK version for this variant.
From [com.android.build.api.variant.GeneratesTestApk](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/GeneratesTestApk) `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Property.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html>` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/GeneratesTestApk#functionalTest()`

The functionalTest value to use to run the tests.
`https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Property.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html>` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/GeneratesTestApk#handleProfiling()`

The handleProfiling value to use to run the tests.
`https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Property.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/GeneratesTestApk#instrumentationRunner()`

The instrumentationRunner to use to run the tests.
`https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/GeneratesTestApk#instrumentationRunnerArguments()`

The instrumentationRunnerArguments to use to run the tests.
`https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Property.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/GeneratesTestApk#testLabel()`

The test label, or "" if none defined.
From [com.android.build.api.variant.HasAndroidResources](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/HasAndroidResources) `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Property.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html>` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/HasAndroidResources#pseudoLocalesEnabled()`

Variant's is pseudo locales enabled, initialized by the corresponding DSL elements.
`https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html<https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ResValue.Key, https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ResValue>` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/HasAndroidResources#resValues()`

Variant's `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ResValue` which will be generated.
From [com.android.build.api.variant.Variant](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant) `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/BuildConfigField<https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html>>?` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant#buildConfigFields()`

Variant's `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/BuildConfigField` which will be generated in the BuildConfig class.
`https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/CompileSdkVersion` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant#compileSdk()`

Gets the compile SDK Version for this variant.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component>` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant#components()`

List containing this variant and all of its `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant#nestedComponents()`
`https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html>` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant#experimentalProperties()`

Additional per variant experimental properties.
`https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ExternalNativeBuild?` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant#externalNativeBuild()`

Variant's cmake `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ExternalNativeBuild`, initialized by merging the product flavor values or null if no cmake external build is configured for this variant.
`https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant#manifestPlaceholders()`

`https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html` of the variant's manifest placeholders.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html?` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant#maxSdk()`

Gets the maximum supported SDK Version for this variant.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Component>` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant#nestedComponents()`

List of the components nested in this variant, the returned list will contain:
`https://docs.gradle.org/current/javadoc/org/gradle/api/provider/ListProperty.html<https://docs.gradle.org/current/javadoc/org/gradle/api/file/RegularFile.html>` `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant#proguardFiles()`

List of proguard configuration files for this variant.

## Public properties

### applicationId

```
val applicationId: Property<String>
```

Variant's application ID as present in the final manifest file of the APK.

### testedApks

Added in 8.3.1

```
val testedApks: Provider<Directory>
```

The `https://docs.gradle.org/current/javadoc/org/gradle/api/file/Directory.html` containing the APKs of the application under test.

The `https://docs.gradle.org/current/javadoc/org/gradle/api/file/Directory.html` content should be read using a `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/BuiltArtifactsLoader`

### testedApplicationId

Added in 4.2.0

```
val testedApplicationId: Provider<String>
```

The application of the app under tests.