Najpierw zapoznaj się z informacjami o obsługiwaniu opcji w Tradefed.
Konfiguracja pakietu określa 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.
Przekazywanie opcji do pakietu 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 mogły otrzymywać opcje, muszą być kierowane na konkretne grupy odbiorców za pomocą opcji 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 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 do konkretnego modułu, ale do wszystkich narzędzi testujących 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 testu Java jako część docelowej kompilacji 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
i --exclude-filter
, aby odpowiednio wymusić uwzględnienie lub wykluczenie konkretnego testu bądź modułu. Wykluczenie ma pierwszeństwo.
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