Pengujian dapat gagal karena alasan apa pun, dan terkadang cukup dengan menjalankan ulang pengujian agar lulus lagi (karena ketidakstabilan, 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; hanya pengujian yang gagal dijalankan kembali, sehingga menghemat waktu eksekusi secara signifikan.
Tradefed juga mendukung pengujian yang dijalankan beberapa kali untuk mendeteksi ketidakstabilan melalui fitur iterasi. Dalam hal ini, semua pengujian akan dijalankan ulang, 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: max-testcase-run-count
dan retry-strategy
.
max-testcase-run-count
mendorong jumlah percobaan ulang atau iterasi yang akan
dicoba. Metode ini menetapkan batas atas untuk menghindari percobaan ulang selamanya.
retry-strategy
mendorong keputusan terkait cara mencoba lagi; lihat bagian berikut
untuk detail selengkapnya.
Nonaktifkan percobaan ulang otomatis
Gunakan opsi berikut:
--retry-strategy NO_RETRY
Mencoba ulang kegagalan
Untuk mencoba kembali kegagalan uji, 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 tampilan hasilnya?
Pelapor hasil secara default akan menerima hasil gabungan dari semua upaya.
Misalnya: Fail
dan Pass
untuk RETRY_ANY_FAILURE
akan menghasilkan
Pass
gabungan karena percobaan ulang berhasil menghapus kegagalan.
Pelapor dapat menerima hasil yang tidak digabungkan. Untuk melakukannya, aplikasi harus memperluas antarmuka ISupportGranularResults yang mendeklarasikan dukungan untuk hasil terperinci (non-agregat).
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 cara pengoperasian rerun secara manual. InstalledInstrumentationsTest adalah contoh implementasi antarmuka tersebut.