Paketi yeniden dene

Bir paket genellikle birkaç test modülü içerir ve oldukça büyük bir test derlem boyutuna ulaşabilir. Örneğin, Android Uyumluluk Test Paketi (CTS) yüzlerce modül ve yüzbinlerce test senaryosu içerir.

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

Paketi yeniden deneme özelliği bu durumları ele almak içindir: Kesintileri ve zayıf izolasyonu ortadan kaldırmak için yalnızca tam paketler yerine hataları 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 uygulayın

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 denemeyi yönlendiren ana arayüz, önceki sonucu ve önceki komut satırını yüklemenizi sağlayan ITestSuiteResultLoader .

RetryRescheduler daha sonra bu bilgiyi önceki komutu yeniden oluşturmak ve yalnızca önceki hataları veya yürütülmeyen testleri yeniden çalıştırmak amacıyla bazı filtreleri doldurmak için kullanır.

Örnek paket yeniden denemesi: CTS

CTS'deki yeniden deneme yapılandırması şöyledir:

<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, onu genişleten çoğu paket için geçerlidir, örneğin VTS .

Şununla çağrılacaktır:

cts-tradefed run retry --retry <session>

Oturum, CTS konsolunda önceki sonuçların 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

Orijinal komutun tamamı yeniden yüklenecek ve ekstra filtrelerle yeniden çalıştırılacaktır. Bu, orijinal komutunuz bazı seçenekleri içeriyorsa, bunların da yeniden denemenin bir parçası olduğu anlamına gelir.

Örneğin:

cts-tradefed run cts-dev -m CtsGestureTestCases

Yukarıdakilerin yeniden denenmesi her zaman CtsGestureTestCases bağlıdır çünkü yalnızca onu içeren bir komutu yeniden deniyoruz.

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

Yeniden denemenin işe yaraması 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" />

Bunun, ana komutun XML yapılandırmasına eklenmesi gerekir ve sonuç klasöründe bir test-record.pb dosyasının oluşturulmasıyla sonuçlanır.

CTS yeniden denemesi daha sonra yeniden deneme çağrısını hazırlamak için test-record.pb ve mevcut test_result.xml kombinasyonundan verileri yükler.