Otomatik Test Yeniden Deneme

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.