Android Studio for Platform (ASfP) si integra con atest e con i moduli di test Soong per consentirti di eseguire il debug dei test della piattaforma sulla macchina host Linux, sul dispositivo connesso o sul dispositivo virtuale Cuttlefish dall'IDE.
Prerequisiti
- Apri un progetto ASfP configurato con il checkout AOSP e la destinazione
lunch. - Per i test del dispositivo, connetti un dispositivo fisico o avvia un dispositivo virtuale Cuttlefish che esegue una build corrispondente.
Eseguire test ed eseguire il debug
Puoi avviare test della piattaforma e sessioni di debug da diverse posizioni in ASfP:
- Target di test
Android.bp: apri un fileAndroid.bpe fai clic su Esegui nel margine accanto a qualsiasi modulo di test (*_testo*_test_host):- Esegui: disponibile per tutti i tipi di moduli di test Soong (
android_test,java_test_host,cc_test,rust_test,python_test,sh_testeandroid_robolectric_test). - Debug: disponibile per i moduli
android_test(collegati al debugger Java utilizzandoatest --wait-for-debugger) e per i moduli di test C++ o Rust (cc_test,cc_test_host,rust_testerust_test_host, avviati con il debugger LLDB integrato di ASfP).
- Esegui: disponibile per tutti i tipi di moduli di test Soong (
- Icone della barra laterale del file sorgente: fai clic su Esegui accanto a una classe di test o a un
@Testmetodo nel codice sorgente per eseguire o eseguire il debug di quel test specifico. - Menu contestuale: fai clic con il tasto destro del mouse su un file di test, una classe, un metodo o un modulo
Android.bpe seleziona Esegui o Debug. - Agente integrato (AI in Android Studio): nella finestra degli strumenti Agente, l'agente integrato può eseguire target
atestper verificare le modifiche dopo la modifica del codice. - Terminale integrato: apri Visualizza > Finestre degli strumenti > Terminale per eseguire
direttamente i comandi
atest.
Configurazione e debug dei test intelligenti
Quando avvii un test dal margine o dal menu contestuale, ASfP crea e
configura una configurazione di esecuzione Soong Test utilizzando il grafico dei moduli Android.bp.
Eseguire il debug dei target Java e Kotlin android_test
Fai clic sull'icona della barra laterale accanto a un modulo android_test in Android.bp o accanto a una classe JUnit Java o Kotlin o a un metodo @Test, quindi seleziona Debug "<TestName>". Dalla barra laterale di un file sorgente, ASfP sceglie il modulo android_test più vicino il cui srcs include il file e denomina la configurazione <module>, <module>:<SimpleClass> o <module>:<SimpleClass>#<method>.
ASfP esegue atest con --wait-for-debugger, legge l'attributo package
di destinazione da AndroidManifest.xml del modulo, attende il completamento del processo sul
dispositivo connesso e collega il debugger Java.

Esegui il debug dei target cc_test e rust_test in LLDB
Per eseguire il debug di un modulo di test C++ o Rust (cc_test, cc_test_host, rust_test o
rust_test_host), fai clic sull'icona della barra laterale Android.bp e seleziona Debug
'<TestName>'. ASfP avvia il binario di test compilato nel debugger LLDB integrato
anziché eseguirlo tramite atest.
Configura la configurazione di esecuzione del test Soong
Apri Esegui > Modifica configurazioni e seleziona una configurazione Soong Test per personalizzare la modalità di compilazione, deployment e avvio dei test:
- Completamento automatico del modulo e
Android.bpnavigazione: il campo Modulo si completa automaticamente con i moduli di test Soong indicizzati nel progetto. Fai clic su Vai ad Android.bp accanto al campo per passare alla dichiarazione del modulo inAndroid.bp. - Esegui su: dispositivo o host (incluso
host_supported: true): ASfP valuta la regola del modulo e la relativa catenadefaultstransitiva (host_supported,device_supported,enabled,target.android.enabled, etarget.host.enabled):- Test con doppio target (
cc_testerust_testconhost_supported: true): sono disponibili entrambi i pulsanti di opzione Dispositivo e Host (l'impostazione predefinita è Dispositivo). Device e Host mantengono ciascuno il proprio modello di debugger LLDB indipendente. Il passaggio da Esegui su tra Dispositivo e Host alterna la configurazione del dispositivo remotolldb-servere la configurazione binaria dell'host locale preservando le personalizzazioni apportate a ogni target. - Test con un solo target: se un test C++ o Rust viene compilato solo per un ambiente (ad esempio un
cc_testsolo dispositivo o uncc_test_hostorust_test_hostsolo host), ASfP seleziona il target supportato e disattiva il pulsante di opzione non supportato con una descrizione comando esplicativa: "<module> (<ruleType>) doesn't build for the host or device.".
- Test con doppio target (
- Attività pre-lancio (crea modulo di test nativo ed esegui il deployment con atest):
ogni configurazione di Soong Test include due attività Pre-lancio per
impostazione predefinita:
- Build Native Test Module: crea
<module>-target(per Device) o<module>-host(per Host) prima di avviare LLDB. - Esegui il deployment con atest: durante il debug su Dispositivo, esegue
atest <module> --collect-tests-only --disable-teardown -it -s <serial> -- --abi <abi>in modo che Tradefed inserisca le dipendenze di test ed esegua i preparatori di destinazione prima che LLDB avvii il binario. Tieni premuto il puntatore sopra il chip Esegui il deployment con atest per visualizzare l'esatto comandoatest. Per un'iterazione più rapida una volta che le dipendenze sono già sul dispositivo, rimuovi Deploy with atest in modo che ASfP invii direttamente solo il binario di test. Quando selezioni Esegui su: Host, ASfP salta automaticamente Esegui il deployment con l'ultima versione.
- Build Native Test Module: crea
- Modifica opzioni e debugger (schede delle opzioni LLDB): utilizza Modifica opzioni
per aggiungere campi di configurazione facoltativi:
- Argomenti del programma (solo test di sistema operativo, C++ e Rust):
Argomenti aggiuntivi passati direttamente al binario
cc_testorust_testdopo il filtro--gtest_filterolibtestdurante il debug. - atest arguments (Test): flag aggiuntivi passati a
atestdurante l'esecuzione del test o durante la preparazione di un dispositivo con Deploy with atest. - Debugger (solo test C++ e Rust): visualizzato quando Modulo è una
destinazione
cc_test*orust_test*. Attiva/disattiva le schede Opzioni LLDB (ad esempio Interrompi all'ingresso, Memorizza simboli nella cache tra le sessioni, Carica simboli su richiesta o Con visualizzatori Rust per i test Rust), fai clic su Reimposta su impostazioni predefinite per reimpostare il modello Dispositivo o Host attivo oppure aggiungi Directory dei simboli, Comandi di inizializzazione, pre-esecuzione, post-esecuzione o uscita e JSON di avvio (Impostazioni DAP) da Modifica opzioni > Debugger.
- Argomenti del programma (solo test di sistema operativo, C++ e Rust):
Argomenti aggiuntivi passati direttamente al binario

Visualizzare i risultati dei test
L'avanzamento dell'esecuzione del test, lo stato di superamento o errore, le analisi dello stack e i log del dispositivo vengono visualizzati in tempo reale all'interno della finestra degli strumenti Esegui o Debug in ASfP.
Suggerimenti per i test
- Esegui test mirati: testa singoli metodi dal margine dell'editor senza eseguire un'intera suite di test.
- Utilizza gli snapshot di Cuttlefish: quando esegui test del dispositivo su dispositivi virtuali Cuttlefish, utilizza gli snapshot per ripristinare uno stato pulito del dispositivo tra le esecuzioni.
- Ispeziona i log di build di Soong: se un test non viene compilato prima dell'esecuzione, controlla la finestra degli strumenti Soong per la diagnostica del compilatore.