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
i --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