Bir paket, birkaç test modülü içerir ve oldukça geniş bir kitleye ulaşabilir yardımcı olabilir. Örneğin, Android Compatibility Test Suite (CTS) yüzlerce modül ve yüz binlerce test durumu içerir.
Kötü izolasyon nedeniyle çok sayıda test başarısız olabilir. veya cihazlar kötü bir durumda kalacak.
Paket yeniden deneme özelliğinin amacı bu durumları ele almaktır: Yeniden deneme özelliğini devre dışı bırakmak amacıyla tüm paketlerin hepsi yerine izolasyondur. Bir test sürekli olarak başarısız oluyorsa yeniden deneme de başarısız olur; ve gerçekten bir sorun olduğuna dair daha güçlü bir sinyal alırsınız.
Paketin yeniden denemesini uygulayın
Sonuçların yeniden denenmesi, önceki sonuçları okumayı ve önceki çağrı.
Yeniden deneme sağlayan ana arayüz ITestSuiteResultLoader
,
önceki bir sonucu ve önceki komut satırını yüklemenize olanak tanır.
RetryRescheduler
daha sonra bu bilgileri kullanarak önceki komutu yeniden oluşturur ve
yeniden çalıştırmak için filtreleri kullanın.
Örnek paket yeniden denemesi: CTS
CTS'deki yeniden deneme yapılandırması şu şekildedir:
<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, sınırı artıran süitlerin çoğu için geçerlidir. Örneğin, VTS değerleridir.
Şunlarla çağrılır:
cts-tradefed run retry --retry <session>
Oturum, önceki sonuçlar CTS konsolunda listelenerek 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üklenir ve ekstra filtrelerle yeniden çalıştırılır. Bu orijinal komutunuzda bazı seçenekler varsa bu seçenekler de bir kısmı devre dışı bırakılır.
Örnek:
cts-tradefed run cts-dev -m CtsGestureTestCases
Yukarıdakilerin yeniden denenmesi her zaman CtsGestureTestCases
adresine bağlıdır çünkü
yalnızca onu içeren bir komutu yeniden deniyoruz.
CTS stili paket için yeniden denemeyi yapılandırma
Yeniden denemenin çalışması için önceki sonuçların proto biçimindedir. 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ı oluşturulmasına neden olur.
CTS yeniden denemesi daha sonra test-record.pb
ve
yeniden deneme çağrısını hazırlamak için mevcut test_result.xml
.