Meneruskan opsi dan filter ke suite dan modul

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