GNU/Linux >> Belajar Linux >  >> Linux

Pengujian unit untuk skrip shell

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

Linux
  1. Menggunakan Bash untuk otomatisasi

  2. Apakah Ada Konvensi Penamaan Untuk Variabel Dalam Skrip Shell?

  3. Array Asosiatif Dalam Skrip Shell?

  1. Penguncian yang Benar Dalam Skrip Shell?

  2. Pengujian Cangkang Ikan Untuk Keberadaan File Di $path?

  3. Ekstensi File Untuk Skrip Unix Shell?

  1. Apa yang dapat dilakukan shell dotfile untuk Anda

  2. Distribusi Linux Populer untuk Pengujian Keamanan

  3. Skrip transliterasi untuk shell linux