Google berkomitmen untuk memajukan ekuitas ras untuk komunitas kulit hitam. Lihat bagaimana.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Konfigurasi Tes Kompleks

Beberapa modul uji mungkin memerlukan pengaturan khusus dan meruntuhkan langkah-langkah yang tidak dapat dilakukan dalam case uji itu sendiri. Contoh-contoh umum dapat meliputi:

  • instal apks lain (sebagai tambahan pada apk tes)
  • dorong beberapa file ke perangkat
  • jalankan perintah (mis. adb shell pm ...)

Di masa lalu, tim komponen biasanya menggunakan tes sisi tuan rumah untuk melakukan tugas-tugas seperti itu, yang membutuhkan pemahaman tentang memanfaatkan Federasi Dagang dan biasanya meningkatkan kompleksitas modul uji.

Meminjam dari CTS, kami memperkenalkan konsep konfigurasi modul uji untuk mendukung tugas-tugas tersebut, daftar tugas umum di atas dapat dicapai hanya dengan beberapa baris konfigurasi. Untuk fleksibilitas maksimum, Anda bahkan dapat mengimplementasikan pembuat target Anda sendiri, seperti yang didefinisikan oleh ITargetPreparer atau ITargetCleaner , dan mengonfigurasinya untuk digunakan dalam konfigurasi modul tes Anda sendiri.

Konfigurasi modul tes untuk modul tes adalah file XML yang diperlukan yang ditambahkan ke folder sumber modul tingkat atas, bernama 'AndroidTest.xml'. XML mengikuti format file konfigurasi yang digunakan oleh memanfaatkan otomatisasi uji Federasi Dagang. Saat ini tag utama yang ditangani melalui konfigurasi modul tes adalah tag "target_preparer" dan "test".

Pembuat target

Tag “target_preparer”, seperti namanya, mendefinisikan preparer target (lihat ITargetPreparer ) yang menawarkan metode pengaturan, yang dipanggil sebelum modul tes dijalankan untuk pengujian; dan jika kelas yang direferensikan dalam tag "target_preparer" juga mengimplementasikan ITargetCleaner , metode teardown akan dipanggil setelah modul tes selesai.

Untuk menggunakan konfigurasi modul umum bawaan, tambahkan file baru 'AndroidTest.xml' di folder tingkat atas untuk modul pengujian Anda, dan isi dengan konten berikut:

 <?xml version="1.0" encoding="utf-8"?>
<!-- [insert standard AOSP copyright here] -->
<configuration description="Test module config for Foo">
<!-- insert options here -->
</configuration>
 

Sebagai contoh, kita dapat menambahkan tag opsi berikut (di "sisipkan" komentar di atas):

     <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
        <option name="run-command" value="settings put secure accessibility_enabled 1" />
        <option name="teardown-command" value="settings put secure accessibility_enabled 0" />
    </target_preparer>
 

Opsi akan mengonfigurasi harness uji untuk:

  1. sebelum modul uji dipanggil, jalankan perintah shell “setting put secureibility_enabled 1” pada perangkat
  2. setelah modul uji selesai, jalankan perintah shell “setting put secure availability_enabled 0”

Dalam contoh khusus ini, aksesibilitas diaktifkan / dinonaktifkan masing-masing sebelum / setelah pelaksanaan modul uji. Dengan contoh sederhana yang diperlihatkan, perlu untuk mencakup detail lebih lanjut tentang bagaimana tag "opsi" digunakan. Seperti yang ditunjukkan di atas, tag dapat memiliki dua atribut: nama, nilai. Atribut name menunjukkan nama opsi, dan selanjutnya dipecah menjadi dua bagian yang dipisahkan oleh titik dua: nama pendek untuk preparer, dan nama opsi aktual yang ditawarkan oleh preparer.

Tujuan tepat bidang nilai tergantung pada bagaimana preparer mendefinisikan opsi: itu bisa berupa string, angka, boolean, atau bahkan path file dll. Dalam contoh di atas, nama "run-command: run-command" berarti bahwa kita sedang menetapkan nilai untuk opsi "run-command" yang ditentukan oleh target preparer dengan nama pendek "run-command"; dan nama "run-command: teardown-command" berarti bahwa kita menetapkan nilai untuk opsi "teardown-command" juga ditentukan oleh pembuat target yang sama dengan nama pendek "run-command". Berikut ini ringkasan dari tiga penyusun target yang umum:

  • nama kelas: PushFilePreparer

    • nama pendek : file push
    • fungsi : mendorong file sembarang ke folder test case ke tujuan pada perangkat
    • catatan :
      • preparer ini dapat mendorong dari folder ke folder, atau file ke file; yaitu, Anda tidak dapat mendorong file di bawah folder di perangkat: Anda harus menentukan nama file tujuan di folder itu juga
    • opsi :
      • push: A push-spec, diformat sebagai ' /path/to/srcfile.txt->/path/to/destfile.txt ' atau ' /path/to/srcfile.txt->/path/to/destdir/ '. Dapat diulang Jalur ini mungkin relatif terhadap direktori modul tes atau direktori keluar itu sendiri.
      • ** post-push: ** Perintah untuk dijalankan di perangkat (dengan ` adb shell <your command> `) setelah semua upaya dilakukan. Kasus penggunaan umum akan menggunakan chmod untuk izin
  • nama kelas: InstallApkSetup

    • nama pendek: install-apk
    • fungsi: mendorong file apk sewenang-wenang ke tujuan pada perangkat
    • pilihan:
      • test-file-name: nama apk untuk diinstal ke perangkat.
      • install-arg: Argumen tambahan untuk diteruskan ke perintah install pm, termasuk dasbor terdepan, misalnya "-d". Dapat diulang
  • nama kelas: RunCommandTargetPreparer

    • nama pendek: run-command
    • fungsi: mengeksekusi perintah shell sewenang-wenang sebelum atau setelah eksekusi modul uji
    • pilihan:
      • run-command: adb shell command untuk dijalankan. Bisa diulang
      • teardown-command: adb shell command untuk dijalankan selama fase teardown. Bisa diulang

Kelas tes

Kelas tes adalah kelas Federasi Dagang yang akan digunakan untuk menjalankan tes.

 <test class="com.android.tradefed.testtype.AndroidJUnitTest">
  <option name="package" value="android.test.example.helloworld"/>
  <option name="runner" value="android.support.test.runner.AndroidJUnitRunner"/>
</test>
 

Berikut adalah tiga kelas tes umum:

  • nama kelas: GTest

    • nama pendek: gtest
    • fungsi: Tes yang menjalankan paket tes asli pada perangkat yang diberikan.
    • pilihan:
      • native-test-device-path: Jalur pada perangkat tempat tes asli berada.
  • nama kelas: InstrumentationTest

    • nama pendek: instrumentasi
    • fungsi: Tes yang menjalankan paket uji instrumentasi pada perangkat yang diberikan
    • pilihan:
      • paket: Nama paket manifes dari aplikasi pengujian Android untuk dijalankan.
      • class: Nama kelas tes untuk dijalankan.
      • metode: Nama metode pengujian untuk dijalankan.
  • nama kelas: AndroidJUnitTest

    • fungsi: Tes yang menjalankan paket uji instrumentasi pada perangkat yang diberikan menggunakan android.support.test.runner.AndroidJUnitRunner Ini adalah cara utama untuk menjalankan tes instrumentasi.