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 disimpan diisolasi dari suite; jadi tidak semua opsi tersedia di tingkatan mereka.
Meneruskan opsi ke suite tingkat teratas
Suite level teratas ini berperilaku seperti konfigurasi Tradefed standar: termasuk suite runner menerima semua opsi seperti konfigurasi Tradefed non-suite.
Meneruskan opsi ke modul
Modul secara default tidak menerima opsi apa pun yang diteruskan ke perintah.
Mereka harus ditargetkan secara eksplisit untuk menerima opsi melalui
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 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 dari setiap modul berdasarkan runner
jenis atau class.
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 kelas pengujian, secara {i>default<i}, mereka semua 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.
Mereka menggunakan format ini: [abi] <module-name> [test name]
Contoh:
--include-filter CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes