Percobaan ulang pengujian otomatis

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.