Pengujian bisa gagal karena alasan apa pun, dan terkadang menjalankan ulang pengujian cukup untuk lulus lagi (karena kegagalan, seperti dari masalah dalam infrastruktur dasar). Anda dapat mengonfigurasi Tradefed untuk melakukan percobaan ulang secara otomatis.
Inti dari percobaan ulang otomatis adalah menghindari menjalankan kembali semua pengujian; tayangan ulang hanya pengujian yang gagal, sehingga menghemat waktu eksekusi secara signifikan.
Tradefed juga mendukung pengujian yang berjalan beberapa kali untuk mendeteksi kegagalan melalui fitur iterasi. Dalam hal ini, semua pengujian akan dijalankan kembali, dan pengujian akan gagal jika ada iterasi yang gagal.
Aktifkan percobaan ulang otomatis
Percobaan ulang otomatis dikontrol melalui
Objek RetryDecision
yang menyediakan dua opsi untuk mengaktifkan fitur tersebut: max-testcase-run-count
dan retry-strategy
.
max-testcase-run-count
mendorong jumlah percobaan ulang atau iterasi yang akan
dapat dilakukan. Fungsi ini menetapkan batas atas untuk menghindari percobaan ulang selamanya.
retry-strategy
mengarahkan keputusan terkait cara mencoba lagi; lihat bagian berikut
untuk mengetahui detail selengkapnya.
Nonaktifkan percobaan ulang otomatis
Gunakan opsi berikut:
--retry-strategy NO_RETRY
Coba lagi gagal
Untuk mencoba kembali kegagalan uji, gunakan opsi berikut:
--retry-strategy RETRY_ANY_FAILURE --max-testcase-run-count X
Tindakan ini akan mencoba lagi kegagalan hingga lulus atau hingga jumlah percobaan ulang maksimum tercapai, mana saja yang lebih dulu.
Iterasi/Pengulangan
Untuk menjalankan kembali pengujian selama beberapa waktu, opsi berikut dapat digunakan:
--retry-strategy ITERATIONS --max-testcase-run-count X
Seperti apa hasilnya?
Reporter hasil secara default akan menerima hasil gabungan dari semua upaya.
Misalnya: Fail
dan Pass
untuk RETRY_ANY_FAILURE
akan menghasilkan
digabungkan Pass
sejak percobaan ulang berhasil mengatasi kegagalan.
Reporter dapat menerima hasil yang tidak digabungkan. Untuk melakukannya, mereka perlu memperluas Antarmuka ISupportGranularResults yang mendeklarasikan dukungan untuk hasil yang terperinci (tidak digabungkan).
Detail implementasi
Untuk mengaktifkan percobaan ulang otomatis guna menjalankan ulang kegagalan di tingkat kasus pengujian, implementasikan ITestFilterReceiver.
Jika tidak dapat menerapkan ITestFilterReceiver, Anda dapat menerapkan IAutoRetriableTest untuk mengontrol secara manual cara kerja {i>rerun<i}. InstalInstrumentationsTest adalah contoh implementasi antarmuka tersebut.