Pertama, pastikan Anda memahami Penanganan Opsi di Tradefed.
Penyiapan Suite menjelaskan dua lapisan yang ada di struktur suite:
- Suite tingkat atas
- Modul
Dalam konteks Tradefed non-suite, tidak perlu memikirkannya; setiap mengarah ke pemanggilan lengkap. Dalam konteks suite, modul tetap terisolasi dari suite; sehingga tidak semua opsi tersedia di tingkatnya.
Meneruskan opsi ke suite tingkat teratas
Suite tingkat teratas berperilaku seperti konfigurasi Tradefed standar: konfigurasi lengkap termasuk runner suite menerima semua opsi seperti konfigurasi Tradefed non-suite.
Meneruskan opsi ke modul
Modul secara default tidak menerima opsi apa pun yang diteruskan ke perintah.
Pengguna tersebut harus ditargetkan secara eksplisit untuk menerima opsi melalui
opsi module-arg
. Pemisahan opsi modul ini membuat proses debug
semuanya.
Contoh:
cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>
cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true
Sintaksis ini memastikan bahwa modul yang ditargetkan akan menerima opsi yang diberikan.
Ada cara tambahan untuk meneruskan opsi ke modul seperti test-arg
, yang
memungkinkan Anda meneruskan opsi ke runner pengujian setiap modul berdasarkan jenis
atau class runner.
Contoh:
cts-tradefed run cts --test-arg <test-class>:<option-name>:<option-value>
cts-tradefed run cts --test-arg com.android.tradefed.testtype.JarHosttest:collect-tests-only:true
Sintaksis tidak menargetkan modul tertentu, tetapi ke semua runner pengujian
dari kelas yang diberikan. test-arg
hanya mempertimbangkan implementasi
IRemoteTest
sebagai calon penerima opsi.
Meneruskan opsi ke class pengujian Java di java_test_host
Jika Anda menambahkan @Option
ke class pengujian java sebagai bagian dari
target build {i>java_test_host<i}, Anda harus menggunakan
perintah berikut untuk menginjeksikan
opsi:
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
set-option dalam konteks ini adalah opsi runner HostTest dari harness pengujian yang menggabungkan class java Anda untuk mengeksekusinya.
jika target file jar Anda untuk opsi berisi beberapa class pengujian, secara default, semuanya diharapkan memiliki @option yang ditentukan atau menggunakan sintaksis berikut untuk menargetkan satu class:
cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>
Meneruskan filter ke suite
Untuk memfilter beberapa pengujian dari suite, kita menggunakan --include-filter
dan
--exclude-filter
untuk masing-masing memaksa menyertakan atau mengecualikan pengujian tertentu
atau modul. Pengecualian memiliki prioritas.
Formatnya adalah: [abi] <module-name> [test name]
Contoh:
--include-filter CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes