Pengujian dapat gagal karena alasan apa pun, dan terkadang cukup menjalankan ulang pengujian agar lulus lagi (karena ketidakstabilan, seperti dari masalah pada infrastruktur dasar). Anda dapat mengonfigurasi Tradefed untuk melakukan percobaan ulang secara otomatis.
Inti dari coba lagi otomatis adalah untuk menghindari menjalankan kembali semua pengujian; coba lagi otomatis hanya menjalankan kembali pengujian yang gagal, sehingga menghemat banyak waktu eksekusi.
Tradefed juga mendukung menjalankan pengujian beberapa kali untuk mendeteksi ketidakstabilan melalui fitur iterasi. Dalam hal ini, semua pengujian akan dijalankan ulang, dan pengujian akan gagal jika salah satu iterasi gagal.
Mengaktifkan percobaan ulang otomatis
Pencobaan ulang otomatis dikontrol melalui
objek RetryDecision
yang menyediakan dua opsi untuk mengaktifkan fitur ini: max-testcase-run-count
dan retry-strategy
.
max-testcase-run-count
menentukan jumlah percobaan ulang atau iterasi yang akan
dicoba. Tindakan ini menetapkan batas atas untuk menghindari percobaan ulang tanpa henti.
retry-strategy
mendorong keputusan tentang cara mencoba lagi; lihat bagian berikut untuk mengetahui detail selengkapnya.
Menonaktifkan percobaan ulang otomatis
Gunakan opsi berikut:
--retry-strategy NO_RETRY
Mencoba lagi kegagalan
Untuk mencoba lagi kegagalan pengujian, gunakan opsi berikut:
--retry-strategy RETRY_ANY_FAILURE --max-testcase-run-count X
Tindakan ini akan mencoba ulang kegagalan hingga berhasil atau hingga jumlah percobaan ulang maksimum tercapai, mana saja yang lebih dulu.
Iterasi
Untuk menjalankan ulang pengujian beberapa kali, opsi berikut dapat digunakan:
--retry-strategy ITERATIONS --max-testcase-run-count X
Seperti apa hasilnya?
Secara default, pelapor hasil akan menerima hasil gabungan dari semua percobaan.
Misalnya: Fail
dan Pass
untuk RETRY_ANY_FAILURE
akan menghasilkan Pass
gabungan karena percobaan ulang berhasil menghapus kegagalan.
Pelapor dapat menerima hasil yang tidak diagregasi. Untuk melakukannya, mereka harus memperluas antarmuka ISupportGranularResults yang menyatakan dukungan untuk hasil terperinci (tidak diagregasi).
Detail implementasi
Untuk mengaktifkan coba lagi otomatis untuk menjalankan kembali kegagalan di tingkat kasus pengujian, terapkan ITestFilterReceiver.
Jika Anda tidak dapat menerapkan ITestFilterReceiver, Anda dapat menerapkan IAutoRetriableTest untuk mengontrol secara manual cara pengoperasian pengujian ulang. InstalledInstrumentationsTest adalah contoh penerapan antarmuka tersebut.