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 untuk menghindari pengulangan semua pengujian; fitur ini hanya menjalankan ulang pengujian yang gagal, 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.

Mengaktifkan 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. Ini menetapkan batas atas untuk menghindari percobaan ulang selamanya. retry-strategy mendorong keputusan tentang cara mencoba lagi; 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 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 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.

Reporter 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 kembali kegagalan di tingkat kasus pengujian, terapkan ITestFilterReceiver.

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