Percobaan Ulang Otomatis

Tes mungkin gagal karena alasan apa pun, dan terkadang menjalankan ulang tes saja sudah cukup untuk membuatnya lulus lagi (karena kerapuhan, seperti dari masalah pada infrastruktur yang mendasarinya). Anda dapat mengkonfigurasi Tradefed untuk melakukan percobaan ulang secara otomatis.

Inti dari percobaan ulang otomatis adalah untuk menghindari menjalankan kembali semua pengujian; itu hanya menjalankan kembali tes yang gagal, menghasilkan penghematan besar dalam waktu eksekusi.

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

Mengaktifkan fitur

Coba 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 mencoba lagi selamanya. retry-strategy mendorong keputusan tentang bagaimana mencoba lagi; lihat bagian berikut untuk lebih jelasnya.

menonaktifkan

Gunakan opsi berikut:

--retry-strategy NO_RETRY

Mencoba lagi kegagalan

Untuk mencoba kembali kegagalan pengujian, gunakan opsi berikut:

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

Ini akan mencoba kembali kegagalan sampai berhasil atau sampai jumlah maksimum percobaan ulang tercapai, mana saja yang lebih dulu.

Iterasi

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 Pass gabungan karena percobaan ulang berhasil menghapus kegagalan.

Dimungkinkan bagi reporter untuk menerima hasil non-agregat. Untuk melakukannya, mereka perlu memperluas antarmuka ISupportGranularResults yang menyatakan dukungan untuk hasil granular (non-agregat).

Detail Implementasi

Untuk mengaktifkan coba ulang otomatis untuk menjalankan kembali kegagalan pada tingkat kasus pengujian, terapkan ITestFilterReceiver .

Jika Anda tidak dapat mengimplementasikan ITestFilterReceiver, Anda dapat mengimplementasikan IAutoRetriableTest untuk secara manual mengontrol bagaimana menjalankan ulang beroperasi. InstalledInstrumentationsTest adalah contoh implementasi antarmuka tersebut.