Cara Mudah Simpan Hasil Capybara Screenshot di Github CI
Kami mengulas trik menyimpan otomatis tangkapan layar gagal dari capybara-screenshot sebagai artefak di platform Github Actions CI.
Panduan menyimpan artefak screenshot dari pengujian otomatis di platform Github Actions
Tantangan Menguji Aplikasi Rails
Kami biasanya menguji aplikasi Rails menggunakan kombinasi RSpec dan Capybara. Alat ini sangat membantu kami memastikan semua fitur berjalan lancar sebelum masuk ke tahap produksi.
Untuk pengujian lokal, kami mengandalkan plugin Capybara-screenshot yang otomatis menyimpan gambar saat pengujian gagal. Fitur ini tetap bekerja dengan baik meskipun kami menggunakan peramban tanpa antarmuka grafis.
Namun, masalah baru muncul ketika kami memindahkan semua proses pengujian otomatis ke sistem Github Actions. Kami sering menemui kegagalan pengujian yang tidak konsisten dan sulit kami lacak penyebabnya.
Solusi Menyimpan Artefak Gambar
Untungnya kami menemukan cara cerdas untuk mengatasi keterbatasan pelacakan ini. Jawabannya adalah dengan menyimpan hasil tangkapan layar tersebut sebagai artefak resmi di Github Actions.
Kami hanya perlu menambahkan dua langkah konfigurasi akhir pada berkas alur kerja YAML milik kami. Langkah tersebut mencakup perintah menjalankan RSpec dan perintah khusus untuk mengarsipkan gambar.
Penulis asli proyek ini menegaskan, "Saya sudah menyiapkan Capybara-screenshot sebelumnya." Strategi ini terbukti memotong waktu investigasi eror kami secara signifikan.
Memeriksa Hasil Log Pengujian
Sekarang kami bisa langsung melihat nama berkas gambar yang dilaporkan di dalam log Github CI jika ada tes gagal. Proses ini membuat pencarian akar masalah menjadi jauh lebih transparan.
Kami juga memastikan bahwa penambahan kondisi gagal ini tidak mengubah status akhir dari pekerjaan utama. Sistem Github CI akan tetap menandai pekerjaan tersebut gagal sesuai dengan hasil yang sebenarnya.
Langkah pengarsipan ini akan tetap berjalan di latar belakang untuk menyelamatkan aset bukti kesalahan kode kami. Kami merasa konfigurasi ini sangat wajib ada di setiap repositori.