Skonfiguruj pakiety

Pakiet w ramach Tradefed oznacza konfigurację, w której kilka testów jest przeprowadzanych w ramach który jest najczęściej używany do uruchamiania testów.

W handlu pakietowym apartamenty są przemieszczone ITestSuite klasy, która pozwala dodawać i usuwać testy niezależnie od sposobu, w jaki są bieganie.

Definicje

  • Pakiet: zestaw modułów testowych skonfigurowanych tak, by uruchamiały się na podobnym poziomie najwyższego poziomu konfiguracji, aby raportować wyniki przy użyciu jednego wywołania.
  • Konfiguracja najwyższego poziomu: konfiguracja została zastosowana na urządzeniach przed uruchomieniem z modułów testowych.
  • Konfiguracja główna: konfiguracja XML Tradefed, na poziomie pakietu, wskazuje, które moduły powinny być uruchamiane i jaka konfiguracja najwyższego poziomu należy zastosować .
  • Konfiguracja na poziomie modułu: konfiguracja została zastosowana na urządzeniach tuż przed uruchomieniem . Są to tak zwane konfiguracje modułów.
  • Konfiguracja modułu: odnosi się do pliku XML Tradefed AndroidTest.xml konfiguracja opisująca moduły i określoną konfigurację na poziomie modułu, co powinno się zmienić.
  • Moduł: jednostka testowa składająca się z kroku konfiguracji (konfiguracja na poziomie modułu) oraz testu i etap zakończenia procesu.
  • Ponowna próba w ramach modułu: automatyczne ponawianie próby wykonywane przez uprzęże wewnątrz modułu.
  • Ponowienie próby w pakiecie: ponowne uruchomienie wszystkich nieudanych testów pakietu.

Struktura ITestSuite

ITestSuite w ramach Tradefed oznacza wspólną klasę bazową uruchamiającą wykonanie pakietu. Jest udostępniane przez wszystkie główne zestawy testów, a w szczególności system Android Compatibility Test Suite (CTS) i Android Vendor Test Suite (VTS) i zapewnia spójność procesu wykonywania. we wszystkich apartamentach.

Czasami określamy ITestSuite jako osobę biegową.

Uruchamiający pakiet wykonuje te kroki:

  1. Wczytaj konfigurację modułu i określ, który zestaw powinien zostać uruchomiony.
  2. Uruchom każdy moduł:

    1. Uruchom konfigurację na poziomie modułu.
    2. Przeprowadzaj testy modułów.
    3. Uruchom demontaż na poziomie modułu.
  3. Zgłoś wyniki.

Konfiguracja najwyższego poziomu

Z punktu widzenia Tradefed ITestSuite to po prostu kolejny test. To złożone zadanie jeden, ale nadal jest tylko testem, jak każdy inny IRemoteTest. Zatem podczas określania w przypadku uruchomienia pakietu w konfiguracji Tradefed, Tradefed wzorzec konfiguracji: uruchomiony build_provider, target_preparer, test (w tym przypadku nasz pakiet) oraz target_cleaner.

Ta sekwencja w konfiguracji Tradefed, która zawiera ITestSuite, jest i konfiguracji najwyższego poziomu.

Przykład:

<configuration description="Common config for Compatibility suites">

    <build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider" />
    <!-- Setup applied before the suite: so everything running in the suite will
    have this setup beforehand -->
    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
        <option name="run-command" value="settings put global package_verifier_enable 0" />
        <option name="teardown-command" value="settings put global package_verifier_enable 1"/>
    </target_preparer>

    <!-- Our ITestSuite implementation -->
    <test class="com.android.compatibility.common.tradefed.testtype.suite.CompatibilityTestSuite" />

    <result_reporter class="com.android.compatibility.common.tradefed.result.ConsoleReporter" />
</configuration>

Metadane modułu

W module testowym nazywamy metadane modułu. AndroidTest.xml Te metadane umożliwiają podanie dodatkowych informacji na temat: moduł, a moduły można filtrować przy użyciu metadanych.

Przykładowe metadane:

<option name="config-descriptor:metadata" key="component" value="framework" />
<option name="config-descriptor:metadata" key="parameter" value="instant_app" />

Przykładowy filtr metadanych:

--module-metadata-include-filter component=framework

Powyższe polecenie spowoduje uruchomienie wszystkich modułów z ramką jako metadane komponentu.

Pełny przykład zastosowania AndroidTest.xml:

<configuration description="Config for CTS Gesture test cases">
    <option name="test-suite-tag" value="cts" />
    <!-- Metadata -->
    <option name="config-descriptor:metadata" key="component" value="framework" />
    <option name="config-descriptor:metadata" key="parameter" value="instant_app" />
    <!-- End: metadata -->
    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
        <option name="cleanup-apks" value="true" />
        <option name="test-file-name" value="CtsGestureTestCases.apk" />
    </target_preparer>
    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
        <option name="package" value="android.gesture.cts" />
        <option name="runtime-hint" value="10m50s" />
    </test>
</configuration>

Moduł z parametrami

Specjalny typ metadanych to parameter.

<option name="config-descriptor:metadata" key="parameter" value="instant_app" />

Te metadane określają, że moduł musi zostać uruchomiony w innym trybie aplikacji, np. aplikacji błyskawicznej, a nie standardowego trybu aplikacji.

Wszystkie możliwe tryby lub parametry zostały opisane przez ModuleParameters i mają powiązany moduł obsługi ModuleParametersHelper który pozwala zmienić konfigurację modułu tak, aby działał w konkretnym trybie.

Na przykład tryb aplikacji błyskawicznej wymusza instalację pakietu APK jako aplikacji błyskawicznej. i trybu uzyskiwania zgody.

Aby można było stosować parametry, musisz włączyć je w wierszu poleceń z:

--enable-parameterized-modules

Można też uruchomić pojedynczy tryb, używając:

--enable-parameterized-modules --module-parameter <Mode>

--enable-parameterized-modules --module-parameter INSTANT_APP

Gdy działa wersja modułu z parametrami, raportuje wyniki w z nazwą modułu z parametrami, np. CtsGestureTestCases[instant] zamiast o podstawie CtsGestureTestCases.