Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Konfigurasi Bangun Sederhana

Setiap modul pengujian baru harus memiliki file konfigurasi untuk mengarahkan sistem build dengan metadata modul, dependensi waktu kompilasi, dan instruksi pengemasan. Android sekarang menggunakan Soong membangun sistem untuk konfigurasi tes sederhana.

Soong menggunakan Blueprint atau .bp file, yang JSON seperti deskripsi deklaratif sederhana modul untuk membangun. Format ini menggantikan sistem berbasis Make yang digunakan pada rilis sebelumnya. Lihat file referensi Soong pada Continuous Integration Dashboard untuk rincian lengkap.

Untuk mengakomodasi pengujian kustom atau menggunakan Android Compatibility Test Suite (CTS), ikuti Kompleks Uji Konfigurasi gantinya.

Contoh

Entri di bawah ini berasal dari contoh Blueprint file konfigurasi ini: /platform_testing/tests/example/instrumentation/Android.bp

Sebuah snapshot disertakan di sini untuk kenyamanan:

android_test {
    name: "HelloWorldTests",
    srcs: ["src/**/*.java"],
    sdk_version: "current",
    static_libs: ["android-support-test"],
    certificate: "platform",
    test_suites: ["device-tests"],
}

Perhatikan android_test deklarasi di awal menunjukkan ini adalah ujian. Termasuk android_app sebaliknya akan menunjukkan ini bukan paket build.

Pengaturan

Pengaturan berikut mengumpulkan penjelasan:

    name: "HelloWorldTests",

The name pengaturan diperlukan ketika android_test jenis modul ditentukan (pada awal blok). Ini memberi nama untuk modul Anda, dan APK yang dihasilkan akan diberi nama yang sama dan dengan .apk akhiran, misalnya dalam kasus ini, sehingga tes apk disebut sebagai HelloWorldTests.apk . Selain itu, ini juga mendefinisikan make nama target untuk modul Anda, sehingga Anda dapat menggunakan make [options] <HelloWorldTests> untuk membangun modul pengujian dan seluruh dependensinya.

    static_libs: ["android-support-test"],

The static_libs pengaturan menginstruksikan membangun sistem untuk menggabungkan isi dari modul bernama ke apk yang dihasilkan dari modul saat ini. Ini berarti bahwa setiap modul bernama diharapkan untuk menghasilkan .jar file, dan isinya akan digunakan untuk menyelesaikan referensi classpath selama waktu kompilasi, serta dimasukkan ke apk yang dihasilkan.

Dalam contoh ini, hal-hal yang mungkin berguna secara umum untuk pengujian:

The android-support-test adalah prebuilt untuk Perpustakaan Dukungan Android Test, yang meliputi tes pelari baru AndroidJUnitRunner : pengganti sekarang usang built-in InstrumentationTestRunner , dengan dukungan untuk JUnit4 pengujian framework. Baca lebih lanjut di aplikasi Uji Android .

Jika Anda sedang membangun sebuah modul instrumentasi baru, Anda harus selalu mulai dengan android-support-test perpustakaan sebagai runner pengujian Anda. Pohon source platform juga mencakup kerangka pengujian lain yang berguna seperti ub-uiautomator , mockito-target , easymock dan banyak lagi.

    certificate: "platform",

The certificate pengaturan memerintahkan membangun sistem untuk menandatangani apk dengan sertifikat yang sama sebagai platform inti. Ini diperlukan jika pengujian Anda menggunakan izin atau API yang dilindungi tanda tangan. Perhatikan bahwa ini cocok untuk platform pengujian terus menerus, tetapi tidak boleh digunakan dalam modul uji CTS. Perhatikan bahwa contoh ini menggunakan pengaturan sertifikat ini hanya untuk tujuan ilustrasi: kode pengujian contoh sebenarnya tidak memerlukan apk pengujian untuk ditandatangani dengan sertifikat platform khusus.

Jika Anda menulis instrumentasi untuk komponen Anda yang berada di luar server sistem, yaitu, itu dikemas kurang lebih seperti apk aplikasi biasa, kecuali bahwa itu dibangun ke dalam citra sistem dan mungkin merupakan aplikasi istimewa, kemungkinan instrumentasi Anda akan menargetkan paket aplikasi (lihat bagian di bawah tentang manifes) komponen Anda. Dalam hal ini, makefile aplikasi Anda mungkin memiliki sendiri certificate pengaturan, dan modul instrumentasi Anda harus mempertahankan pengaturan yang sama. Ini karena untuk menargetkan instrumentasi Anda pada aplikasi yang sedang diuji, apk pengujian dan apk aplikasi Anda harus ditandatangani dengan sertifikat yang sama.

Dalam kasus lain, Anda tidak perlu memiliki pengaturan ini sama sekali: membangun sistem hanya akan menandatanganinya dengan standar built-in sertifikat, berdasarkan membangun varian, dan itu biasanya disebut dev-keys .

    test_suites: ["device-tests"],

The test_suites pengaturan membuat tes dengan mudah ditemukan oleh memanfaatkan uji Federasi Perdagangan. Suite lain dapat ditambahkan di sini seperti CTS sehingga tes ini dapat dibagikan.

${ANDROID_PRODUCT_OUT}/testcases/HelloWorldTests/HelloWorldTests.apk

Pengaturan opsional

Pengaturan opsional berikut mengumpulkan penjelasan:

    test_config: "path/to/hello_world_test.xml"

The test_config pengaturan menginstruksikan sistem build sasaran pengujian Anda membutuhkan konfigurasi tertentu. Secara default, AndroidTest.xml sebelah Android.bp dikaitkan dengan konfigurasi.

    auto_gen_config: true

The auto_gen_config pengaturan menunjukkan apakah atau tidak untuk membuat konfigurasi tes otomatis. Jika AndroidTest.xml tidak ada di sebelah Android.bp , atribut ini tidak perlu diatur ke benar secara eksplisit.

    require_root: true

The require_root pengaturan memerintahkan membangun sistem untuk menambahkan RootTargetPreparer ke otomatis dihasilkan config tes. Ini menjamin pengujian berjalan dengan izin root.

    test_min_api_level: 29

The test_min_api_level pengaturan memerintahkan membangun sistem untuk menambahkan MinApiLevelModuleController ke otomatis dihasilkan config tes. Ketika Federasi Perdagangan berjalan konfigurasi tes, tes akan dilewati jika properti perangkat ro.product.first_api_level < test_min_api_level .