Najpierw zapoznaj się z informacjami o obsłudze opcji w Tradefed.
W sekcji Konfiguracja pakietu opisujemy 2 warstwy struktury pakietu:
- Apartament najwyższego poziomu
- Moduły
W kontekście Tradefed bez pakietu nie musisz się tym przejmować. Każda opcja jest przekazywana do pełnego wywołania. W kontekście pakietu moduły są od niego odseparowane, 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 moduł uruchamiający pakiet, otrzymuje wszystkie opcje, tak jak konfiguracja Tradefed bez pakietu.
Przekazywanie opcji do modułów
Domyślnie moduły nie otrzymują żadnych opcji przekazanych do polecenia.
Aby otrzymywać opcje za pomocą opcjimodule-arg
, muszą być one kierowane na te osoby. Dzięki temu łatwiej jest debugować.
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
Składnia zapewnia, że kierowany moduł otrzyma daną opcję.
Istnieją dodatkowe sposoby przekazywania opcji do modułów, np. test-arg
, które umożliwiają przekazywanie opcji do narzędzia do uruchamiania testów każdego modułu na podstawie typu lub klasy narzędzia.
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 programów testujących danej klasy. test-arg
bierze pod uwagę tylko implementacje interfejsu IRemoteTest jako potencjalnych odbiorców opcji.
Przekazywanie opcji do klasy testowej Java w java_test_host
Jeśli dodajesz adnotację @Option
do klasy testowej Java w ramach celu kompilacji java_test_host, musisz użyć tego kodu, aby wstrzyknąć tę opcję:
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
set-option w tym kontekście to opcja narzędzia HostTest z platformy testowej, która otacza klasy Java, aby je wykonać.
Jeśli plik JAR docelowy dla opcji zawiera wiele klas testowych, domyślnie wszystkie powinny mieć określoną opcję @option lub używać tej składni, aby kierować reklamy na 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 znaków --include-filter
i --exclude-filter
, aby odpowiednio wymusić uwzględnienie lub wykluczenie konkretnego testu lub modułu. Wykluczenie ma priorytet.
Używają tego formatu: [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