UPDATE 01-03-2019:Preferensi saya adalah kelelawar sekarang. Saya telah menggunakannya selama beberapa tahun pada proyek-proyek kecil. Saya suka sintaks yang bersih dan ringkas. Saya belum mengintegrasikannya dengan kerangka kerja CI/CD, tetapi status keluarnya mencerminkan keberhasilan/kegagalan suite secara keseluruhan, yang lebih baik daripada shunit2 seperti dijelaskan di bawah.
JAWABAN SEBELUMNYA:
Saya menggunakan shunit2 untuk skrip shell yang terkait dengan aplikasi web Java/Ruby di lingkungan Linux. Ini mudah digunakan, dan bukan perbedaan besar dari framework xUnit lainnya.
Saya belum mencoba mengintegrasikan dengan CruiseControl atau Hudson/Jenkins, tetapi dalam menerapkan integrasi berkelanjutan melalui cara lain, saya mengalami masalah berikut:
- Status keluar:Saat suite pengujian gagal, shunit2 tidak menggunakan status keluar bukan nol untuk mengomunikasikan kegagalan. Jadi, Anda harus mengurai keluaran shunit2 untuk menentukan lolos/gagalnya suite, atau mengubah shunit2 agar berfungsi seperti yang diharapkan beberapa kerangka kerja integrasi berkelanjutan, mengomunikasikan lolos/gagal melalui status keluar.
- Log XML:shunit2 tidak menghasilkan log hasil XML bergaya JUnit.
Bertanya-tanya mengapa tidak ada yang menyebut BATS. Ini terbaru dan sesuai dengan TAP.
Jelaskan:
#!/usr/bin/env bats
@test "addition using bc" {
result="$(echo 2+2 | bc)"
[ "$result" -eq 4 ]
}
Jalankan:
$ bats addition.bats
✓ addition using bc
1 tests, 0 failures