Android Studio for Platform (ASfP) se integra con los módulos de prueba de atest y Soong para que puedas ejecutar y depurar pruebas de la plataforma en tu máquina host de Linux, dispositivo conectado o dispositivo virtual Cuttlefish desde el IDE.
Requisitos previos
- Abre un proyecto de ASfP configurado con tu implementación de AOSP y el destino
lunch. - Para las pruebas de dispositivos, conecta un dispositivo físico o inicia un dispositivo virtual de Cuttlefish que ejecute una compilación coincidente.
Ejecuta y depura pruebas
Puedes iniciar pruebas de la plataforma y sesiones de depuración desde varios lugares en ASfP:
- Objetivos de prueba de
Android.bp: Abre un archivoAndroid.bpy haz clic en Ejecutar en el margen junto a cualquier módulo de prueba (*_testo*_test_host):- Ejecutar: Disponible para todos los tipos de módulos de prueba de Soong (
android_test,java_test_host,cc_test,rust_test,python_test,sh_testyandroid_robolectric_test). - Debug: Disponible para los módulos
android_test(conectados con el depurador de Java a través deatest --wait-for-debugger) y los módulos de prueba de C++ o Rust (cc_test,cc_test_host,rust_testyrust_test_host, iniciados con el depurador LLDB integrado de ASfP).
- Ejecutar: Disponible para todos los tipos de módulos de prueba de Soong (
- Íconos de margen del archivo fuente: Haz clic en Ejecutar junto a una clase de prueba o un método
@Testen tu código fuente para ejecutar o depurar esa prueba específica. - Menú contextual (clic con el botón derecho): Haz clic con el botón derecho en un archivo, una clase, un método o un módulo
Android.bpde prueba, y selecciona Run o Debug. - Agente integrado (IA en Android Studio): En la ventana de herramientas Agent, el agente integrado puede ejecutar destinos
atestpara verificar los cambios después de editar el código. - Terminal integrada: Abre Ver > Ventanas de herramientas > Terminal para ejecutar comandos de
atestdirectamente.
Configuración y depuración de pruebas inteligentes
Cuando inicias una prueba desde el margen o el menú contextual, ASfP crea y configura una configuración de ejecución de Soong Test con tu gráfico de módulos de Android.bp.
Depura destinos de android_test Java y Kotlin
Haz clic en el ícono de margen junto a un módulo android_test en Android.bp, o bien junto a una clase JUnit de Java o Kotlin, o a un método @Test, y, luego, selecciona Debug "<TestName>". Desde el margen de un archivo fuente, ASfP elige el módulo android_test más cercano que incluya el archivo en su srcs y nombra la configuración <module>, <module>:<SimpleClass> o <module>:<SimpleClass>#<method>.
ASfP ejecuta atest con --wait-for-debugger, lee el atributo package de destino del AndroidManifest.xml del módulo, espera ese proceso en el dispositivo conectado y adjunta el depurador de Java.

Depura los destinos cc_test y rust_test en LLDB
Para depurar un módulo de prueba de C++ o Rust (cc_test, cc_test_host, rust_test o rust_test_host), haz clic en el ícono de margen Android.bp y selecciona Debug "<TestName>". ASfP inicia el archivo binario de prueba compilado en su depurador LLDB integrado en lugar de ejecutarlo a través de atest.
Configura la configuración de ejecución de prueba de Soong
Abre Run > Edit Configurations y selecciona una configuración de Soong Test para personalizar la forma en que se compilan, implementan y ejecutan las pruebas:
- Autocompletado de módulos y navegación
Android.bp: El campo Module se autocompleta a partir de los módulos de prueba de Soong indexados en tu proyecto. Haz clic en Ir a Android.bp junto al campo para ir a la declaración del módulo enAndroid.bp. - Ejecutar en: Dispositivo o host (incluido
host_supported: true): ASfP evalúa la regla del módulo y su cadena transitivadefaults(host_supported,device_supported,enabled,target.android.enabledytarget.host.enabled):- Pruebas de doble objetivo (
cc_testyrust_testconhost_supported: true): Están disponibles los botones de selección Dispositivo y Host (Dispositivo es el valor predeterminado). Device y Host mantienen su propia plantilla de depurador LLDB independiente. Cambiar Ejecutar en entre Dispositivo y Host intercambia la configuración del dispositivo remotolldb-servery la configuración binaria del host local, a la vez que conserva las personalizaciones realizadas en cada destino. - Pruebas de un solo destino: Si una prueba de C++ o Rust solo se compila para un entorno (como un
cc_testsolo para dispositivos o uncc_test_hostorust_test_hostsolo para el host), ASfP selecciona el destino compatible y, luego, inhabilita el botón de selección no compatible con una sugerencia explicativa: "<module> (<ruleType>) doesn't build for the host or device.".
- Pruebas de doble objetivo (
- Tareas previas al lanzamiento (compila el módulo de prueba nativo y realiza la implementación con atest):
De forma predeterminada, cada configuración de Soong Test incluye dos tareas de Before launch:
- Build Native Test Module: Compila
<module>-target(para Device) o<module>-host(para Host) antes de iniciar LLDB. - Implementación con atest: Cuando se depura en Device, se ejecuta
atest <module> --collect-tests-only --disable-teardown -it -s <serial> -- --abi <abi>para que Tradefed envíe las dependencias de la prueba y ejecute los preparadores de destino antes de que LLDB inicie el archivo binario. Mantén el puntero sobre el chip Deploy with atest para obtener una vista previa del comandoatestexacto. Para una iteración más rápida una vez que las dependencias ya están en el dispositivo, quita Deploy with atest para que ASfP solo envíe el archivo binario de prueba directamente. Cuando seleccionas Ejecutar en: Host, ASfP omite automáticamente Implementar con latest.
- Build Native Test Module: Compila
- Opciones de modificación y depurador (tarjetas de opciones de LLDB): Usa Opciones de modificación para agregar campos de configuración opcionales:
- Argumentos del programa (solo para pruebas de sistema operativo, C++ y Rust): Argumentos adicionales que se pasan directamente al objeto binario
cc_testorust_testdespués del filtro--gtest_filterolibtestdurante la depuración. - Argumentos de atest (Test): Marcas adicionales que se pasan a
atestcuando se ejecuta la prueba o cuando se prepara un dispositivo con Deploy with atest. - Debugger (solo para pruebas de C++ y Rust): Se muestra cuando Module es un destino
cc_test*orust_test*. Activa o desactiva las tarjetas de opciones de LLDB (como Detener en la entrada, Almacenar en caché los símbolos en las sesiones, Cargar símbolos a pedido o Con visualizadores de Rust para las pruebas de Rust), haz clic en Restablecer la configuración predeterminada para restablecer la plantilla activa de Dispositivo o Host, o bien agrega Directorios de símbolos, Comandos de inicialización, previos a la ejecución, posteriores a la ejecución o de salida y JSON de lanzamiento (Configuración de DAP) desde Modificar opciones > Depurador.
- Argumentos del programa (solo para pruebas de sistema operativo, C++ y Rust): Argumentos adicionales que se pasan directamente al objeto binario

Consulta los resultados de la prueba
El progreso de la ejecución de prueba, el estado de aprobación o falla, los seguimientos de pila y los registros del dispositivo aparecen en tiempo real dentro de la ventana de herramientas Ejecutar o Depurar en ASfP.
Sugerencias para las pruebas
- Ejecuta pruebas segmentadas: Prueba métodos individuales desde el margen del editor sin ejecutar todo un paquete de pruebas.
- Usa instantáneas de Cuttlefish: Cuando ejecutes pruebas de dispositivos en dispositivos virtuales de Cuttlefish, usa instantáneas para restablecer un estado limpio del dispositivo entre ejecuciones.
- Inspecciona los registros de compilación de Soong: Si una prueba no se compila antes de ejecutarse, consulta la ventana de herramientas de Soong para ver los diagnósticos del compilador.