Android Studio for Platform (ASfP) terintegrasi dengan modul pengujian atest dan Soong sehingga Anda dapat menjalankan dan men-debug pengujian platform di mesin host Linux, perangkat terhubung, atau perangkat virtual Cuttlefish dari IDE.
Prasyarat
- Buka project ASfP yang dikonfigurasi dengan checkout AOSP dan target
lunchAnda. - Untuk pengujian perangkat, hubungkan perangkat fisik atau luncurkan perangkat virtual Cuttlefish yang menjalankan build yang cocok.
Menjalankan dan men-debug pengujian
Anda dapat meluncurkan pengujian platform dan sesi debug dari beberapa tempat di ASfP:
- Target pengujian
Android.bp: Buka fileAndroid.bpdan klik Run di gutter di samping modul pengujian (*_testatau*_test_host):- Run: Tersedia untuk semua jenis modul pengujian Soong (
android_test,java_test_host,cc_test,rust_test,python_test,sh_test, danandroid_robolectric_test). - Debug: Tersedia untuk modul
android_test(terlampir dengan debugger Java menggunakanatest --wait-for-debugger) dan modul pengujian C++ atau Rust (cc_test,cc_test_host,rust_test, danrust_test_host, diluncurkan di bawah debugger LLDB bawaan ASfP).
- Run: Tersedia untuk semua jenis modul pengujian Soong (
- Ikon gutter file sumber: Klik Run di samping class pengujian atau metode
@Testdalam kode sumber untuk menjalankan atau men-debug pengujian tertentu tersebut. - Menu konteks klik kanan: Klik kanan file, class, metode, atau
modul
Android.bp, lalu pilih Run atau Debug. - Agen Bawaan (AI di Android Studio): Di jendela alat Agen, Agen Bawaan dapat menjalankan target
atestuntuk memverifikasi perubahan setelah mengedit kode. - Terminal terintegrasi: Buka View > Jendela Alat > Terminal untuk menjalankan perintah
atestsecara langsung.
Konfigurasi dan proses debug pengujian cerdas
Saat Anda meluncurkan pengujian dari gutter atau menu konteks, ASfP akan membuat dan mengonfigurasi konfigurasi eksekusi Soong Test menggunakan grafik modul Android.bp Anda.
Men-debug target android_test Java dan Kotlin
Klik ikon gutter di samping modul android_test dalam Android.bp, atau di samping
metode @Test atau class JUnit Java atau Kotlin, lalu pilih Debug
'<TestName>'. Dari gutter file sumber, ASfP memilih modul
android_test terdekat yang srcs-nya menyertakan file dan memberi nama konfigurasi
<module>, <module>:<SimpleClass>, atau <module>:<SimpleClass>#<method>.
ASfP menjalankan atest dengan --wait-for-debugger, membaca atribut package target dari AndroidManifest.xml modul, menunggu proses tersebut di perangkat terhubung, dan melampirkan debugger Java.

Men-debug target cc_test dan rust_test di LLDB
Untuk men-debug modul pengujian C++ atau Rust (cc_test, cc_test_host, rust_test, atau
rust_test_host), klik ikon gutter Android.bp dan pilih Debug
'<TestName>'. ASfP meluncurkan biner pengujian yang dikompilasi di bawah debugger LLDB bawaannya, bukan menjalankannya melalui atest.
Mengonfigurasi konfigurasi pengujian Soong
Buka Run > Edit Configurations dan pilih konfigurasi Soong Test untuk menyesuaikan cara build, deployment, dan peluncuran pengujian:
- Penyelesaian otomatis modul dan navigasi
Android.bp: Kolom Module melakukan penyelesaian otomatis dari modul pengujian Soong yang diindeks dalam project Anda. Klik Go to Android.bp di samping kolom untuk membuka deklarasi modul diAndroid.bp. - Jalankan di: Perangkat atau Host (termasuk
host_supported: true): ASfP mengevaluasi aturan modul dan rantai transitifdefaults-nya (host_supported,device_supported,enabled,target.android.enabled, dantarget.host.enabled):- Pengujian target ganda (
cc_testdanrust_testdenganhost_supported: true): Tombol pilihan Perangkat dan Host tersedia (secara default Perangkat). Perangkat dan Host masing-masing mempertahankan template debugger LLDB independennya sendiri. Beralihnya Run on antara Device dan Host akan menukar konfigurasilldb-serverperangkat jarak jauh dan konfigurasi biner host lokal sekaligus mempertahankan penyesuaian yang dilakukan pada setiap target. - Pengujian target tunggal: Jika pengujian C++ atau Rust hanya dibuat untuk satu
lingkungan (seperti
cc_testkhusus perangkat ataucc_test_hostataurust_test_hostkhusus host), ASfP akan memilih target yang didukung dan menonaktifkan tombol pilihan yang tidak didukung dengan tooltip penjelasan: "<module> (<ruleType>) doesn't build for the host or device."
- Pengujian target ganda (
- Tugas sebelum peluncuran (Membangun Modul Pengujian Native dan Men-deploy dengan atest):
Setiap konfigurasi Soong Test mencakup dua tugas Sebelum peluncuran secara
default:
- Build Native Test Module: Membangun
<module>-target(untuk Perangkat) atau<module>-host(untuk Host) sebelum memulai LLDB. - Deploy dengan atest: Saat melakukan proses debug di Perangkat, akan menjalankan
atest <module> --collect-tests-only --disable-teardown -it -s <serial> -- --abi <abi>sehingga Tradefed akan mengirimkan dependensi pengujian dan mengeksekusi penyiapan target sebelum LLDB meluncurkan biner. Arahkan kursor ke chip Deploy with atest untuk melihat pratinjau perintahatestyang tepat. Untuk iterasi yang lebih cepat setelah dependensi sudah ada di perangkat, hapus Deploy with atest sehingga ASfP hanya mengirimkan biner pengujian secara langsung. Saat Anda memilih Jalankan di: Host, ASfP akan otomatis melewati Deploy dengan terbaru.
- Build Native Test Module: Membangun
- Opsi ubah dan Debugger (kartu opsi LLDB): Gunakan Opsi ubah untuk menambahkan kolom konfigurasi opsional:
- Argumen program (Sistem Operasi, khusus pengujian C++ dan Rust):
Argumen tambahan yang diteruskan langsung ke biner
cc_testataurust_testsetelah filter--gtest_filterataulibtestsaat proses debug. - Argumen atest (Test): Flag tambahan yang diteruskan ke
atestsaat menjalankan pengujian atau saat menyiapkan perangkat dengan Deploy with atest. - Debugger (khusus pengujian C++ dan Rust): Ditampilkan saat Module adalah target
cc_test*ataurust_test*. Aktifkan kartu LLDB options (seperti Stop on entry, Cache symbols across sessions, Load symbols on demand, atau With Rust visualizers untuk pengujian Rust), klik Reset to defaults untuk mereset template Device atau Host yang aktif, atau tambahkan Symbol directories, Init, Pre-run, Post-run, atau Exit commands, dan Launch JSON (DAP Settings) dari Modify options > Debugger.
- Argumen program (Sistem Operasi, khusus pengujian C++ dan Rust):
Argumen tambahan yang diteruskan langsung ke biner

Melihat hasil pengujian
Progres eksekusi uji, status lulus atau gagal, stack trace, dan log perangkat muncul secara real time di dalam jendela alat Run atau Debug di ASfP.
Tips untuk pengujian
- Menjalankan pengujian yang ditargetkan: Uji setiap metode dari gutter editor tanpa menjalankan seluruh suite pengujian.
- Menggunakan snapshot Cuttlefish: Saat menjalankan pengujian perangkat di perangkat virtual Cuttlefish, gunakan snapshot untuk memulihkan status perangkat yang bersih di antara proses.
- Periksa log build Soong: Jika pengujian gagal dikompilasi sebelum dijalankan, periksa jendela alat Soong untuk melihat diagnostik compiler.