Percobaan ulang pengujian otomatis

Pengujian dapat gagal karena alasan apa pun, dan terkadang cukup dengan menjalankan kembali pengujian untuk membuatnya lulus lagi (karena ketidakstabilan, seperti dari masalah dalam infrastruktur yang mendasarinya). Anda dapat mengonfigurasi Tradefed untuk melakukan percobaan ulang secara otomatis.

Inti dari percobaan ulang otomatis adalah untuk menghindari menjalankan kembali semua pengujian; percobaan ulang hanya menjalankan kembali pengujian yang gagal, sehingga menghemat waktu eksekusi.

Tradefed juga mendukung menjalankan pengujian beberapa kali untuk mendeteksi ketidakstabilan melalui fitur iterations. Dalam hal ini, semua pengujian akan dijalankan kembali, dan pengujian akan gagal jika salah satu iterasi gagal.

Mengaktifkan percobaan ulang otomatis

Percobaan 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. Opsi ini menetapkan batas atas untuk menghindari percobaan ulang selamanya. retry-strategy menentukan keputusan cara mencoba ulang; lihat bagian berikut untuk mengetahui detail selengkapnya.

Menonaktifkan percobaan ulang otomatis

Gunakan opsi berikut:

--retry-strategy NO_RETRY

Mencoba ulang kegagalan

Untuk mencoba ulang kegagalan pengujian, gunakan opsi berikut:

--retry-strategy RETRY_ANY_FAILURE --max-testcase-run-count X

Tindakan ini akan mencoba ulang kegagalan hingga lulus atau hingga jumlah percobaan ulang maksimum tercapai, mana saja yang lebih dulu.

Iterasi

Untuk menjalankan kembali pengujian beberapa kali, opsi berikut dapat digunakan:

--retry-strategy ITERATIONS --max-testcase-run-count X

Seperti apa hasilnya?

Pelapor hasil secara default 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 digabungkan. Untuk melakukannya, mereka harus memperluas antarmuka ISupportGranularResults yang mendeklarasikan dukungan untuk hasil granular (tidak digabungkan).

Detail implementasi

Untuk mengaktifkan percobaan ulang otomatis untuk menjalankan kembali kegagalan di tingkat kasus pengujian, terapkan ITestFilterReceiver.

Jika tidak dapat menerapkan ITestFilterReceiver, Anda dapat menerapkan IAutoRetriableTest untuk mengontrol secara manual cara pengoperasian pengujian ulang. InstalledInstrumentationsTest adalah contoh penerapan antarmuka tersebut.