running-tests-on-gradle-managed-devices
Installation
SKILL.md
Running Tests On Gradle Managed Devices — Gradle Owns The Emulator
Gradle Managed Devices (GMD) move the emulator into the build: you declare devices in build.gradle.kts, and ./gradlew <device>DebugAndroidTest downloads the system image, boots a fresh emulator, runs androidTest, collects results, and shuts it down. The payoff is reproducibility — CI and every machine run the exact same device — and no hand-managed emulators. This skill covers the DSL, the generated tasks, ATD images for cheap CI, sharding, and where GMD sits relative to connectedAndroidTest and raw am instrument (see ../../../adb/tests/running-instrumented-tests-via-adb/SKILL.md).
When to use this skill
- The user wants instrumented tests to run on a defined, reproducible emulator in CI without
adb-managing a device. - The user mentions
managedDevices,allDevicesCheck,ManagedVirtualDevice, or a generated task likepixel2api30DebugAndroidTest. - The user wants the test matrix (which API levels / form factors) to live in version control, not in someone's local AVD list.
- CI emulator runs are slow/flaky and the user asks about ATD ("Automated Test Device") images.
- The user wants to shard a slow instrumented suite across several emulator copies.
When NOT to use this skill
- The user wants to run tests on a physical device or an emulator they already have running — that is
./gradlew connectedAndroidTest/connectedDebugAndroidTest; GMD is for emulators Gradle creates. - The user is invoking the runner directly without Gradle (
adb shell am instrument -w -r …, sharding via-e numShards, Test Orchestrator wiring) — use../../../adb/tests/running-instrumented-tests-via-adb/SKILL.mdand../../../adb/automation/scripting-adb-for-ci/SKILL.md. - The user is choosing the
AndroidJUnit4runner / writing the test class itself — use../../runner/running-instrumented-tests-with-androidjunit4/SKILL.md. - The user wants Compose UI tests specifically — those still run as instrumented tests; GMD just hosts them. See
../../../compose/setup/setting-up-host-vs-device-tests/SKILL.mdfor host-vs-device choice first.