Percobaan ulang pengujian otomatis

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.