Bir test herhangi bir nedenden dolayı başarısız olabilir ve bazen testi yeniden çalıştırmak, tekrar başarılı olması için yeterlidir (temeldeki altyapıdaki sorunlar gibi sorunlar nedeniyle). Tradefed'i yeniden denemeyi otomatik olarak gerçekleştirecek şekilde yapılandırabilirsiniz.
Otomatik yeniden denemenin özü, tüm testlerin yeniden çalıştırılmasını önlemektir; yalnızca başarısız olan testleri yeniden çalıştırarak yürütme süresinde büyük tasarruf sağlar.
Tradefed ayrıca yineleme özelliği aracılığıyla düzensizliği tespit etmek için testlerin birden çok kez çalıştırılmasını da destekler. Bu durumda, tüm testler yeniden çalıştırılacak ve yinelemelerden herhangi birinin başarısız olması durumunda test başarısız olacaktır.
Otomatik yeniden denemeyi etkinleştir
Otomatik yeniden deneme, özelliği etkinleştirmek için iki seçenek sunan RetryDecision nesnesi aracılığıyla kontrol edilir: max-testcase-run-count
ve retry-strategy
.
max-testcase-run-count
denenecek yeniden deneme veya yineleme sayısını belirler. Sonsuza kadar tekrar denemeyi önlemek için bir üst sınır belirler. retry-strategy
yeniden deneme kararını yönlendirir; daha fazla ayrıntı için aşağıdaki bölümlere bakın.
Otomatik yeniden denemeyi devre dışı bırak
Aşağıdaki seçeneği kullanın:
--retry-strategy NO_RETRY
Başarısızlıkları yeniden dene
Test başarısızlıklarını yeniden denemek için aşağıdaki seçenekleri kullanın:
--retry-strategy RETRY_ANY_FAILURE --max-testcase-run-count X
Bu, başarısızlığı geçene veya maksimum yeniden deneme sayısına ulaşılana kadar (hangisi önce gelirse) yeniden deneyecektir.
Yinelemeler
Testleri belirli bir süre yeniden çalıştırmak için aşağıdaki seçenekler kullanılabilir:
--retry-strategy ITERATIONS --max-testcase-run-count X
Sonuçlar neye benziyor?
Sonuç raporlayıcıları varsayılan olarak tüm denemelerin toplu sonuçlarını alacaktır.
Örneğin: RETRY_ANY_FAILURE
için bir Fail
ve Pass
yeniden deneme başarısızlığı gidermeyi başardığından toplu bir Pass
sonuçlanacaktır.
Muhabirlerin toplulaştırılmamış sonuçları alması mümkündür. Bunu yapmak için, ayrıntılı (toplanmamış) sonuçlara yönelik desteği bildiren ISupportGranularResults arayüzünü genişletmeleri gerekir.
Uygulama ayrıntıları
Hataları test durumu düzeyinde yeniden çalıştırmak amacıyla otomatik yeniden denemeyi etkinleştirmek için ITestFilterReceiver öğesini uygulayın.
ITestFilterReceiver'ı uygulayamıyorsanız, yeniden çalıştırmanın nasıl çalıştığını manuel olarak denetlemek için IAutoRetriableTest'i uygulayabilirsiniz. InstalledInstrumentationsTest bu arayüzün örnek bir uygulamasıdır.