Otomatik Test Yeniden Deneme

Bir test herhangi bir nedenle başarısız olabilir ve bazen testi yeniden çalıştırmak, tekrar geçmesi için yeterlidir (temel altyapıdaki sorunlar gibi kesintiler nedeniyle). Tradefed'i yeniden denemeyi otomatik olarak yapacak şekilde yapılandırabilirsiniz.

Otomatik yeniden deneme çekirdek tüm testleri yeniden çalıştırmayı önlemek için; yalnızca başarısız testleri yeniden çalıştırarak yürütme süresinde büyük tasarruf sağlar.

Tradefed da yineleme özelliği aracılığıyla pul pul tespit etmek için Testlerin birden çok kez çalıştıran 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 yoluyla kontrol edilir RetryDecision nesnesi : özelliğini etkinleştirmek için iki seçenek sunar max-testcase-run-count ve retry-strategy .

max-testcase-run-count sürücüleri çalışılacaktır deneme veya yineleme sayısını. Sonsuza kadar yeniden denemekten kaçınmak için bir üst sınır belirler. retry-strategy sürücüler yeniden denemek için nasıl karar; 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: Bir Fail ve Pass için RETRY_ANY_FAILURE bir toplanmış sonuçlanacaktır Pass yeniden deneme başarısız temizlemek başardı beri.

Muhabirlerin toplu olmayan sonuçları alması mümkündür. Bunu yapmak için, onlar uzatmak için gereken arayüz ISupportGranularResults o granül (toplu olmayan) sonuçları için destek beyan eder.

Uygulama ayrıntıları

Test durumu seviyesinde tekrar yayınlama başarısızlıkları için otomatik yeniden deneme etkinleştirmek için uygulamaya ITestFilterReceiver .

Eğer ITestFilterReceiver uygulayamaz varsa, uygulayabilir IAutoRetriableTest yeniden çalıştırın nasıl çalıştığını elle kontrole. InstalledInstrumentationsTest bu arabirim bir örnek uygulamasıdır.