Suite Yeniden Denemeyi Kullan

Bir süit, birkaç test modülü içerme eğilimindedir ve oldukça büyük bir test gövdesi boyutuna ulaşabilir. Örneğin, Android Uyumluluk Testi Suite (CTS) binlerce test durumları modüllerin yüzlerce ve yüzlerce içerir.

Kötü izolasyon veya cihazların kötü bir duruma geçmesi nedeniyle çok sayıda testin başarısız olması mümkün hale gelir.

Paket yeniden deneme özelliği bu durumları ele almak içindir: Kesintiyi ve zayıf izolasyonu ortadan kaldırmak için yalnızca tam süitler yerine arızaları yeniden denemenize olanak tanır. Bir test sürekli olarak başarısız oluyorsa, yeniden deneme de başarısız olur; ve gerçek bir sorun olduğuna dair çok daha güçlü bir sinyal alırsınız.

Paketi yeniden denemeyi uygula

Sonuçların yeniden denenmesi, önceki sonuçların okunmasını ve önceki çağrının yeniden çalıştırılmasını içerir.

Yeniden deneme sürüş ana arayüzü ITestSuiteResultLoader önceki bir sonucu yük sağlar, ve önceki komut satırı.

RetryRescheduler sonra önceki komutu yeniden ve yeniden çalıştırmak sadece önceki başarısızlıkların da yürütülür testlerde için bazı filtreler doldurmak için bu bilgileri kullanır.

Örnek paketi yeniden deneme: CTS

CTS'deki yeniden deneme yapılandırması:

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

Bu örnek için, uzatın suit çoğu için geçerlidir VTS ).

Şu yollarla çağrılır:

cts-tradefed run retry --retry <session>

Oturum, önceki sonuçların CTS konsolunda listelenmesiyle bulunabilir:

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

Tam orijinal komut yeniden yüklenecek ve ekstra filtrelerle yeniden çalıştırılacaktır. Bu, orijinal komutunuz bazı seçenekler içeriyorsa, bunların da yeniden denemenin bir parçası olacağı anlamına gelir.

Örneğin:

cts-tradefed run cts-dev -m CtsGestureTestCases

Yukarıdakilerin yeniden deneme her zaman sınırlanmış olacaktır CtsGestureTestCases biz sadece işin içinde olduğu bir komut yeniden deniyoruz beri.

CTS tarzı paket için yeniden denemeyi yapılandırın

Yeniden denemenin çalışması için önceki sonuçların proto biçiminde dışa aktarılması gerekir. Aşağıdakilerin eklenmesi gerekir:

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

Bu, ana komuta XML yapılandırmasına eklenmesi gerekiyor ve bir sonuçlanacaktır test-record.pb sonucu klasöründe oluşturulacak dosyanın.

Bir arada yükler verilere sonra CTS yeniden deneme test-record.pb ve mevcut test_result.xml yeniden deneme çağırmayı hazırlamak.