Pertama, pastikan Anda memahami Penanganan Opsi di Tradefed.
Pengaturan suite menjelaskan dua lapisan yang ada dalam struktur suite:
- Suite tingkat atas
- Modul
Dalam konteks Tradefed non-suite, tidak perlu memikirkannya; setiap opsi beralih ke doa penuh. Dalam konteks suite, modul disimpan terisolasi dari suite; jadi tidak semua opsi tersedia di levelnya.
Berikan opsi ke suite tingkat atas
Suite tingkat atas berperilaku seperti konfigurasi Tradefed standar: konfigurasi lengkap termasuk runner suite menerima semua opsi seperti konfigurasi Tradefed non-suite.
Berikan opsi ke modul
Modul secara default tidak menerima opsi apa pun yang diteruskan ke perintah. Mereka harus secara eksplisit ditargetkan untuk menerima opsi melalui opsi module-arg
. Isolasi opsi modul ini membuat debugging lebih mudah.
Contoh:
cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>
cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true
Sintaks 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 uji setiap modul berdasarkan jenis atau kelas 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
Sintaksnya tidak menargetkan modul tertentu melainkan semua pelari uji dari kelas yang diberikan. test-arg
hanya mempertimbangkan implementasi IRemoteTest sebagai calon penerima opsi.
Melewati opsi ke kelas pengujian java di java_test_host
Jika Anda menambahkan @Option
ke kelas pengujian Java Anda sebagai bagian dari target build Java_test_host, Anda harus menggunakan yang berikut ini untuk menyuntikkan opsi itu:
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
set-option dalam konteks ini adalah opsi runner HostTest dari test harness yang membungkus kelas java Anda untuk menjalankannya.
jika target file jar Anda untuk opsi berisi beberapa kelas pengujian, secara default, semuanya diharapkan memiliki @option yang ditentukan atau menggunakan sintaks berikut untuk menargetkan satu kelas:
cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>
Lewati filter ke suite
Untuk memfilter beberapa pengujian dari suite, kami menggunakan --include-filter
dan --exclude-filter
untuk memaksa menyertakan atau mengecualikan pengujian atau modul tertentu. 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