Meneruskan opsi dan filter ke suite dan modul

Pertama, pastikan Anda memahami Penanganan Opsi di Tradefed.

Penyiapan suite menjelaskan dua lapisan yang ada dalam struktur suite:

  • Suite tingkat teratas
  • Modul

Dalam konteks Tradefed non-suite, Anda tidak perlu memikirkannya; setiap opsi akan mengarah ke pemanggilan penuh. 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

Secara default, modul tidak menerima opsi apa pun yang diteruskan ke perintah. Mereka harus ditargetkan secara eksplisit untuk menerima opsi melalui opsi module-arg. Isolasi opsi modul ini mempermudah proses debug.

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 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, melainkan ke semua runner pengujian dari class yang ditentukan. test-arg hanya menganggap implementasi IRemoteTest sebagai calon penerima opsi tersebut.

Meneruskan opsi ke class pengujian Java di java_test_host

Jika menambahkan @Option ke class pengujian java sebagai bagian dari target build java_test_host, Anda harus menggunakan kode berikut untuk memasukkan opsi tersebut:

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 memaksa menyertakan atau mengecualikan pengujian atau modul tertentu. 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