Przekaż opcje i filtry do pakietu i modułów. Przekaż opcje i filtry do pakietu i modułów

Po pierwsze, 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 Tradefed innym niż pakiet, nie ma potrzeby o tym myśleć; każda opcja prowadzi do pełnego wywołania. W kontekście pakietu moduły są izolowane od pakietu; więc nie wszystkie opcje są dostępne na ich poziomie.

Przekaż opcje do pakietu najwyższego poziomu

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 Tradefed niebędąca pakietem.

Przekaż opcje do modułów

Moduły domyślnie nie otrzymują żadnej z opcji przekazywanych do polecenia. Muszą być wyraźnie ukierunkowane, aby otrzymać 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 gwarantuje, że docelowy moduł otrzyma daną opcję.

Istnieją dodatkowe sposoby przekazywania opcji do modułów, takie jak test-arg , który umożliwia przekazywanie opcji testerowi każdego modułu w oparciu o typ lub klasę modułu uruchamiającego.

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 ukierunkowana na konkretny moduł, ale raczej na wszystkie programy uruchamiające testy danej klasy. test-arg uważa jedynie implementacje IRemoteTest za potencjalnego odbiorcę opcji.

Przekaż opcje do klasy testowej Java w pliku 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ących poleceń, aby wstrzyknąć tę opcję:

cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>

opcja set w tym kontekście jest opcją modułu uruchamiającego HostTest z wiązki testowej, która otacza klasy Java w celu ich wykonania.

jeśli docelowy plik jar dla opcji zawiera domyślnie wiele klas testowych, oczekuje się, że wszystkie będą miały określoną opcję @option lub użyją następującej składni, aby wybrać jedną 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 opcji --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
,

Po pierwsze, 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 Tradefed innym niż pakiet, nie ma potrzeby o tym myśleć; każda opcja prowadzi do pełnego wywołania. W kontekście pakietu moduły są izolowane od pakietu; więc nie wszystkie opcje są dostępne na ich poziomie.

Przekaż opcje do pakietu najwyższego poziomu

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 Tradefed niebędąca pakietem.

Przekaż opcje do modułów

Moduły domyślnie nie otrzymują żadnej z opcji przekazywanych do polecenia. Muszą być wyraźnie ukierunkowane, aby otrzymać 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 gwarantuje, że docelowy moduł otrzyma daną opcję.

Istnieją dodatkowe sposoby przekazywania opcji do modułów, takie jak test-arg , który umożliwia przekazywanie opcji testerowi każdego modułu w oparciu o typ lub klasę modułu uruchamiającego.

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 ukierunkowana na konkretny moduł, ale raczej na wszystkie programy uruchamiające testy danej klasy. test-arg uważa jedynie implementacje IRemoteTest za potencjalnego odbiorcę opcji.

Przekaż opcje do klasy testowej Java w pliku 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ących poleceń, aby wstrzyknąć tę opcję:

cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>

opcja set w tym kontekście jest opcją modułu uruchamiającego HostTest z wiązki testowej, która otacza klasy Java w celu ich wykonania.

jeśli docelowy plik jar dla opcji zawiera domyślnie wiele klas testowych, oczekuje się, że wszystkie będą miały określoną opcję @option lub użyją następującej składni, aby wybrać jedną 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 opcji --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