Najpierw upewnij się, że rozumiesz obsługę opcji w Tradefed.
Konfiguracja pakietu opisuje dwie warstwy istniejące w strukturze pakietu:
- Apartament na najwyższym poziomie
- Moduły
W kontekście, który nie obejmuje pakietu Tradefed, nie ma potrzeby o tym myśleć; każda opcja idzie do pełnej inwokacji. W kontekście pakietu moduły są izolowane od pakietu; więc nie wszystkie opcje są dostępne na ich poziomie.
Opcje przechodzenia do apartamentu na najwyższym poziomie
Pakiet najwyższego poziomu zachowuje się jak standardowa konfiguracja Tradefed: pełna konfiguracja, w tym moduł uruchamiający pakiet, otrzymuje wszystkie opcje, takie jak konfiguracja bez pakietu Tradefed.
Przekaż opcje do modułów
Moduły domyślnie nie otrzymują żadnej z opcji przekazanych do polecenia. Muszą być jawnie ukierunkowane, aby otrzymywać opcje za pośrednictwem 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
Składnia zapewnia, że docelowy moduł otrzyma daną opcję.
Istnieją dodatkowe sposoby przekazywania opcji do modułów, takich jak test-arg
, które umożliwiają przekazywanie opcji do programu uruchamiającego testy każdego modułu na podstawie typu programu uruchamiającego lub klasy.
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 odnosi się do konkretnego modułu, ale raczej do wszystkich programów uruchamiających testy danej klasy. test-arg
uwzględnia tylko implementacje IRemoteTest jako potencjalnego odbiorcę opcji.
Przekazywanie opcji do klasy testowej java w java_test_host
Jeśli dodajesz @Option
do swojej klasy testowej java jako część celu kompilacji java_test_host, będziesz musiał użyć następującego, aby wstrzyknąć tę opcję:
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
set-option w tym kontekście jest opcją programu uruchamiającego HostTest z wiązki testowej, która owija klasy Java w celu ich wykonania.
jeśli docelowy plik jar dla opcji zawiera wiele klas testowych, domyślnie oczekuje się, że wszystkie mają określoną wartość @option lub użyj następującej składni, aby wskazać pojedynczą klasę:
cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>
Przekaż filtry do pakietu
Aby odfiltrować niektóre testy z pakietu, używamy --include-filter
i --exclude-filter
, aby odpowiednio wymusić włączenie lub wykluczenie określonego testu lub modułu. Wykluczenie ma pierwszeństwo.
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