Meneruskan opsi dan filter ke rangkaian dan modul, Meneruskan opsi dan filter ke rangkaian dan modul

Pertama, pastikan Anda memahami Penanganan Opsi di Tradefed.

Penyiapan suite menjelaskan dua lapisan yang ada dalam struktur suite:

  • Suite tingkat atas
  • Modul

Dalam konteks Tradefed non-suite, hal ini tidak perlu dipikirkan; setiap opsi mengarah ke pemanggilan penuh. Dalam konteks rangkaian, modul tetap terisolasi dari rangkaian; jadi tidak semua opsi tersedia pada levelnya.

Meneruskan opsi ke rangkaian tingkat atas

Suite tingkat atas berperilaku seperti konfigurasi Tradefed standar: konfigurasi lengkap termasuk suite runner 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 perlu ditargetkan secara eksplisit untuk menerima opsi melalui opsi module-arg . Isolasi opsi modul ini membuat proses debug menjadi 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

Sintaksnya 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 test runner 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 test runner dari kelas tertentu. test-arg hanya mempertimbangkan implementasi IRemoteTest sebagai penerima opsi potensial.

Berikan opsi ke kelas pengujian Java di java_test_host

Jika Anda menambahkan @Option ke kelas pengujian Java sebagai bagian dari target pembangunan java_test_host, Anda perlu menggunakan yang berikut ini 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 pelari HostTest dari test harness yang membungkus kelas Java Anda untuk mengeksekusinya.

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>

Berikan filter ke suite

Untuk memfilter beberapa pengujian dari rangkaian, 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
,

Pertama, pastikan Anda memahami Penanganan Opsi di Tradefed.

Penyiapan suite menjelaskan dua lapisan yang ada dalam struktur suite:

  • Suite tingkat atas
  • Modul

Dalam konteks Tradefed non-suite, hal ini tidak perlu dipikirkan; setiap opsi mengarah ke pemanggilan penuh. Dalam konteks rangkaian, modul tetap terisolasi dari rangkaian; jadi tidak semua opsi tersedia pada levelnya.

Meneruskan opsi ke rangkaian tingkat atas

Suite tingkat atas berperilaku seperti konfigurasi Tradefed standar: konfigurasi lengkap termasuk suite runner 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 perlu ditargetkan secara eksplisit untuk menerima opsi melalui opsi module-arg . Isolasi opsi modul ini membuat proses debug menjadi 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

Sintaksnya 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 test runner 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 test runner dari kelas tertentu. test-arg hanya mempertimbangkan implementasi IRemoteTest sebagai penerima opsi potensial.

Berikan opsi ke kelas pengujian Java di java_test_host

Jika Anda menambahkan @Option ke kelas pengujian Java sebagai bagian dari target pembangunan java_test_host, Anda perlu menggunakan yang berikut ini 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 pelari HostTest dari test harness yang membungkus kelas Java Anda untuk mengeksekusinya.

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>

Berikan filter ke suite

Untuk memfilter beberapa pengujian dari rangkaian, 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