Otomatik test yeniden denemesi

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.