Otomatik test yeniden denemesi

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

Otomatik yeniden denemenin temel amacı, testlerin tümünün 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, iterations özelliği aracılığıyla kararsızlığı tespit etmek için testlerin birden çok kez çalıştırılmasını da destekler. Bu durumda tüm testler yeniden çalıştırılır ve yinelemelerden herhangi biri başarısız olursa test de başarısız olur.

Otomatik yeniden denemeyi 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, denenecek yeniden deneme veya yineleme sayısını belirler. Sonsuza kadar yeniden denemeyi önlemek için üst sınır belirler. retry-strategy, yeniden deneme şekline karar verilmesini sağlar. Daha fazla bilgi için aşağıdaki bölümleri inceleyin.

Otomatik yeniden denemeyi devre dışı bırakma

Aşağıdaki seçeneği kullanın:

--retry-strategy NO_RETRY

Başarısız olan işlemleri 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 işlem, hata geçene veya maksimum yeniden deneme sayısına ulaşılana kadar (hangisi önce gerçekleşirse) yeniden denenir.

Yinelemeler

Testleri belirli bir süre boyunca 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ür?

Sonuç bildirenler varsayılan olarak tüm denemelerin toplu sonuçlarını alır.

Örneğin: RETRY_ANY_FAILURE için bir Fail ve bir Pass, yeniden deneme başarısızlığı gidermeyi başardığı için toplu bir Pass ile sonuçlanır.

Bildirimde bulunan kullanıcılar, toplanmamış sonuçları alabilir. Bunun için, ayrıntılı (toplanmamış) sonuçlar için destek beyan eden ISupportGranularResults arayüzünü genişletmeleri gerekir.

Uygulama ayrıntıları

Test senaryosu düzeyinde hataların yeniden çalıştırılması için otomatik yeniden denemeyi etkinleştirmek üzere ITestFilterReceiver'ı uygulayın.

ITestFilterReceiver'ı uygulayamıyorsanız yeniden çalıştırmanın nasıl çalışacağını manuel olarak kontrol etmek için IAutoRetriableTest'i uygulayabilirsiniz. InstalledInstrumentationsTest bu arayüzün örnek bir uygulamasıdır.