Uji coba ulang otomatis

Suatu pengujian mungkin gagal karena alasan apa pun, dan terkadang menjalankan kembali pengujian saja sudah cukup untuk membuatnya lolos lagi (karena kelemahan, misalnya karena masalah pada infrastruktur yang mendasarinya). Anda dapat mengkonfigurasi Tradefed untuk melakukan percobaan ulang secara otomatis.

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

Tradefed juga mendukung pengujian yang dijalankan beberapa kali untuk mendeteksi kelemahan melalui fitur iterasi . Dalam hal ini, semua pengujian akan dijalankan kembali, dan pengujian akan gagal jika salah satu iterasi 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 menentukan jumlah percobaan ulang atau iterasi yang akan dilakukan. Ini menetapkan batas atas untuk menghindari percobaan ulang selamanya. retry-strategy mendorong keputusan tentang cara mencoba lagi; lihat bagian berikut untuk lebih jelasnya.

Nonaktifkan percobaan ulang otomatis

Gunakan opsi berikut:

--retry-strategy NO_RETRY

Coba lagi kegagalan

Untuk mencoba kembali kegagalan pengujian, gunakan opsi berikut:

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

Ini akan mencoba ulang kegagalan hingga berhasil atau hingga 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?

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 menyelesaikan kegagalan.

Ada kemungkinan bagi reporter untuk menerima hasil non-agregat. Untuk melakukannya, mereka perlu memperluas antarmuka ISupportGranularResults yang mendeklarasikan 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 mengontrol cara pengoperasian ulang secara manual. InstalledInstrumentationsTest adalah contoh implementasi antarmuka tersebut.