Użyj pakietu Ponów próbę

Pakiet zwykle zawiera kilka modułów testowych i może osiągnąć dość duży rozmiar korpusu testowego. Na przykład, Android test kompatybilności Suite (CTS) zawiera setki modułów i setki tysięcy przypadków testowych.

Istnieje możliwość, że duża liczba testów zakończy się niepowodzeniem z powodu słabej izolacji lub urządzeń przechodzących w zły stan.

Funkcja ponawiania pakietów ma na celu rozwiązanie tych przypadków: pozwala ponawiać tylko błędy zamiast pełnych pakietów, aby wykluczyć niestabilność i słabą izolację. Jeśli test stale kończy się niepowodzeniem, ponowna próba również się nie powiedzie; i otrzymujesz znacznie silniejszy sygnał, że istnieje prawdziwy problem.

Ponowna próba pakietu implementacji

Ponowna próba wyników obejmuje odczytanie poprzednich wyników i ponowne uruchomienie poprzedniego wywołania.

Główny interfejs jazdy powtórzenie jest ITestSuiteResultLoader , który pozwala wczytać poprzedni wynik, a poprzedni wiersz poleceń.

RetryRescheduler następnie wykorzystuje te informacje, aby odtworzyć poprzednią komendę i wypełnić pewne filtry, aby ponownie uruchomić jedynie poprzednich awarii lub nie wykonanych testów.

Przykładowe ponowienie zestawu: CTS

Konfiguracja ponawiania w CTS to:

<configuration description="Runs a retry of a previous CTS session.">
    <object type="previous_loader" class="com.android.compatibility.common.tradefed.result.suite.PreviousResultLoader" />
    <test class="com.android.tradefed.testtype.suite.retry.RetryRescheduler" />

    <logger class="com.android.tradefed.log.FileLogger">
        <option name="log-level-display" value="WARN" />
    </logger>
</configuration>

Ma to zastosowanie do większości apartamentów, które rozciągają się, na przykład VTS ).

Zostałby wywołany przez:

cts-tradefed run retry --retry <session>

Sesję można by znaleźć, wyliczając poprzednie wyniki w konsoli CTS:

cts-tf > l r
Session  Pass  Fail  Modules Complete  Result Directory     Test Plan  Device serial(s)  Build ID   Product
0        2092  30    148 of 999        2018.10.29_14.12.57  cts        [serial]          P          Pixel

Dokładne oryginalne polecenie zostanie ponownie załadowane i ponownie uruchomione z dodatkowymi filtrami. Oznacza to, że jeśli oryginalne polecenie zawierało jakieś opcje, byłyby one również częścią ponownej próby.

Na przykład:

cts-tradefed run cts-dev -m CtsGestureTestCases

Ponawiania powyższe będzie zawsze ograniczona do CtsGestureTestCases ponieważ jesteśmy Ponowna próba polecenie, które uczestniczą tylko to.

Skonfiguruj ponowną próbę dla pakietu w stylu CTS

Aby ponowna próba zadziałała, poprzednie wyniki należy wyeksportować w formacie proto. Należy dodać, co następuje:

<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />

To musi być dodany do konfiguracji XML głównego polecenia, a będzie to skutkować test-record.pb pliku do folderu utworzonego w wyniku.

Ponowna próba CTS następnie ładuje dane z kombinacji test-record.pb a istniejąca test_result.xml przygotować wywołania ponawiania.