Bir test herhangi bir nedenle başarısız olabilir ve bazen tekrar geçmesi için testi yeniden çalıştırmak yeterlidir (temel altyapıdaki sorunlar gibi kesintiler nedeniyle). Tradefed'i yeniden denemeyi otomatik olarak yapacak şekilde yapılandırabilirsiniz.
Otomatik yeniden denemenin özü, tüm testleri yeniden çalıştırmaktan kaçınmaktır; yalnızca başarısız testleri yeniden çalıştırarak yürütme süresinde büyük tasarruf sağlar.
Tradefed, yinelemeler özelliği aracılığıyla kesintileri tespit etmek için testleri birden çok kez çalıştırmayı da destekler. Bu durumda, tüm testler yeniden çalıştırılacak ve yinelemelerden herhangi biri başarısız olursa test başarısız olacaktır.
Özelliği etkinleştirme
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 yeniden deneme veya yineleme sayısını yönlendirir. Sonsuza kadar yeniden denemekten kaçınmak için bir üst sınır belirler.
retry-strategy , nasıl yeniden deneneceği kararını yönlendirir; daha fazla ayrıntı için aşağıdaki bölümlere bakın.
devre dışı bırakma
Aşağıdaki seçeneği kullanın:
--retry-strategy NO_RETRY
Başarısızlıkları yeniden deneme
Test hataları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 kadar veya maksimum yeniden deneme sayısına ulaşılana kadar (hangisi önce gelirse) yeniden deneyecektir.
yinelemeler
Testleri birkaç kez yeniden çalıştırmak için aşağıdaki seçenekler kullanılabilir:
--retry-strategy ITERATIONS --max-testcase-run-count X
Sonuçlar nasıl görünüyor?
Sonuç raporlayanlar varsayılan olarak tüm denemelerin toplu sonuçlarını alı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 ile sonuçlanacaktır.
Muhabirlerin toplu olmayan sonuçları alması mümkündür. Bunu yapmak için, ayrıntılı (toplanmayan) sonuçlar için destek bildiren ISupportGranularResults arabirimini genişletmeleri gerekir.
Uygulama ayrıntıları
Hataları test senaryosu düzeyinde yeniden çalıştırmak üzere 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 kontrol etmek için IAutoRetriableTest'i uygulayabilirsiniz. InstalledInstrumentationsTest , bu arayüzün örnek bir uygulamasıdır.