Przekazywanie opcji i filtrów do pakietu i modułów

Najpierw zapoznaj się z opcją obsługi opcji w Tradefed.

Konfiguracja pakietu obejmuje 2 poziomy w strukturze pakietu:

  • Apartament najwyższego poziomu
  • Moduły

W kontekście Tradefed, który nie należy do pakietu, nie trzeba się tym przejmować; każda opcja powoduje pełne wywołanie. W kontekście pakietu moduły są izolowane od pakietu, więc nie wszystkie opcje są dostępne na ich poziomie.

Przepustki do apartamentu najwyższego poziomu

Pakiet najwyższego poziomu działa jak standardowa konfiguracja Tradefed: pełna konfiguracja, w tym pakiet wykonawczy, otrzymuje wszystkie opcje jak konfiguracja Tradefed bez pakietu.

Przekazywanie opcji do modułów

Domyślnie moduły nie otrzymują opcji przekazanych do polecenia. Aby otrzymać opcje za pomocą opcji module-arg, muszą być kierowane na konkretnych odbiorców. Izolacja opcji modułów utrudnia debugowanie. .

Przykład:

cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>

cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true

Dzięki tej składni moduł docelowo otrzyma daną opcję.

Istnieją dodatkowe sposoby przekazywania opcji do modułów, np. test-arg, która umożliwia przekazywanie opcji do modułu testów w zależności od typu lub klasy modułu.

Przykład:

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

Składnia nie jest kierowana na konkretny moduł, ale na wszystkich wykonawców testów danej klasy. test-arg rozważa tylko implementacje IRemoteTest jako potencjalnego odbiorcę opcji.

Przekazuj opcje do klasy testowej Java w java_test_host

Jeśli dodasz @Option do klasy testowej Java jako część docelowego zestawu java_test_host, musisz użyć tej opcji, aby wstrzyknąć tę opcję:

cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>

W tym kontekście set-option to opcja hosta testów z testowego zestawu narzędzi, która otacza Twoje klasy Java, aby je wykonać.

Jeśli plik jar docelowy opcji zawiera wiele klas testowych, domyślnie wszystkie powinny mieć określoną opcję @option lub użyć tej składni, aby ustawić jako cel jedną klasę:

cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>

Przekazywanie filtrów do pakietu

Aby odfiltrować niektóre testy z pakietu, używamy opcji --include-filter--exclude-filter, aby odpowiednio wymusić uwzględnienie lub wykluczenie konkretnego testu bądź modułu. Wykluczenie ma priorytet.

Format: [abi] <module-name> [test name]

Przykłady:

--include-filter CtsGestureTestCases

--include-filter armeabi-v7a CtsGestureTestCases

--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes