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 olur (ör. temel altyapıdaki sorunlardan kaynaklanan güvenilirlik sorunları 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çilene 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ı yeniden çalıştırmak 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.