Percobaan ulang pengujian otomatis

Pengujian dapat gagal karena alasan apa pun, dan terkadang cukup menjalankan ulang pengujian agar lulus lagi (karena ketidakstabilan, seperti dari masalah pada infrastruktur dasar). Anda dapat mengonfigurasi Tradefed untuk melakukan percobaan ulang secara otomatis.

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

Tradefed juga mendukung menjalankan pengujian beberapa kali untuk mendeteksi ketidakstabilan melalui fitur iterasi. Dalam hal ini, semua pengujian akan dijalankan ulang, dan pengujian akan gagal jika salah satu iterasi gagal.

Mengaktifkan percobaan ulang otomatis

Pencobaan ulang otomatis dikontrol melalui objek RetryDecision yang menyediakan dua opsi untuk mengaktifkan fitur ini: max-testcase-run-count dan retry-strategy.

max-testcase-run-count menentukan jumlah percobaan ulang atau iterasi yang akan dicoba. Tindakan ini menetapkan batas atas untuk menghindari percobaan ulang tanpa henti. 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 lagi kegagalan

Untuk mencoba lagi 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?

Secara default, pelapor hasil akan menerima hasil gabungan dari semua percobaan.

Misalnya: Fail dan Pass untuk RETRY_ANY_FAILURE akan menghasilkan Pass gabungan karena percobaan ulang berhasil menghapus kegagalan.

Pelapor dapat menerima hasil yang tidak diagregasi. Untuk melakukannya, mereka harus memperluas antarmuka ISupportGranularResults yang menyatakan dukungan untuk hasil terperinci (tidak diagregasi).

Detail implementasi

Untuk mengaktifkan coba lagi otomatis untuk menjalankan kembali kegagalan di tingkat kasus pengujian, terapkan ITestFilterReceiver.

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