Opcje przekazywania i filtry do pakietu i modułów

Najpierw upewnij się, że rozumiesz obsługę opcji w ramach Tradefed.

Konfiguracja pakietu opisuje 2 warstwy występujące w strukturze apartamentu:

  • Apartament najwyższego poziomu
  • Moduły

W kontekście innej platformy nie trzeba się o tym martwić – każda opcja wiąże się z pełnym wywołaniem. W kontekście pakietu moduły są odizolowane od pakietu, więc nie wszystkie opcje są dostępne na danym poziomie.

Przepustki do apartamentu najwyższego poziomu

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

Przekazywanie opcji do modułów

Domyślnie moduły nie otrzymują żadnych opcji przekazanych do polecenia. Aby otrzymać opcje, muszą być one wyraźnie kierowane do tych użytkowników.module-arg Ta izolacja opcji modułów ułatwia 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 kierowany moduł otrzyma określoną opcję.

Istnieją dodatkowe sposoby przekazywania opcji do modułów, np. test-arg, która umożliwia przekazywanie opcji do modułu testowego na podstawie 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 bierze pod uwagę tylko implementacje interfejsu IRemoteTest jako potencjalnego odbiorcy opcji.

Przekazywanie opcji klasie testu w Javie w pliku 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 zestawu, używamy opcji --include-filter--exclude-filter, aby odpowiednio wymusić uwzględnienie lub wykluczenie konkretnego testu bądź modułu. Wykluczenie ma priorytet.

Mają taki 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