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

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