Menguji Skrip Bash dengan Bats
Tulis ujian automatik untuk skrip shell anda menggunakan rangka kerja pengujian Bats bagi mengesan regresi sebelum ia mencapai persekitaran pengeluaran.
Menguji Skrip Bash dengan Bats ialah pelajaran Penguasaan Baris Perintah Linux & Penskripan Bash percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Penguasaan Baris Perintah Linux & Penskripan Bash, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Penguasaan Baris Perintah Linux & Penskripan Bash merangkumi sejumlah 4 pelajaran.
Mengapa Menguji Skrip Shell?
Skrip yang berjalan tanpa pengawasan (cron, CI) boleh gagal secara senyap. Ujian automatik mengesahkan tingkah laku supaya perubahan tidak merosakkan kod yang berfungsi.
Memperkenalkan Bats
Bats (Bash Automated Testing System) ialah rangka kerja yang mematuhi TAP untuk menguji kod shell. Ujian itu sendiri ialah fail Bash.
# Install on Debian/Ubuntu
sudo apt-get install batsAnatomi Fail Ujian
Fail Bats berakhir dengan .bats dan mentakrifkan ujian menggunakan kata kunci @test serta perihalan.
@test "addition works" {
result=$(( 2 + 2 ))
[ "$result" -eq 4 ]
}Menjalankan Ujian
Jalankan satu fail atau seluruh direktori dengan arahan bats. Ujian lulus apabila setiap arahan di dalamnya keluar dengan kod 0.
bats test/
bats math.batsPembantu run
Arahan run melaksanakan arahan dan menangkap kod keluarnya dalam $status serta output dalam $output tanpa menghentikan ujian.
@test "ls succeeds" {
run ls /tmp
[ "$status" -eq 0 ]
}Membuat Pernyataan tentang Output
Bandingkan $output dengan teks yang dijangka. Anda juga boleh mengindeks baris tertentu dengan ${lines[0]}.
@test "echo prints hello" {
run echo hello
[ "$output" = "hello" ]
}Menguji Kes Kegagalan
Ujian yang baik turut memeriksa laluan ralat. Tegaskan bahawa $status bukan sifar apabila arahan sepatutnya gagal.
@test "missing file fails" {
run cat /no/such/file
[ "$status" -ne 0 ]
}Persediaan dan Pembersihan
Takrifkan fungsi setup() dan teardown() yang dijalankan sebelum dan selepas EACH ujian untuk menyediakan serta membersihkan lekapan.
setup() {
TMP=$(mktemp -d)
}
teardown() {
rm -rf "$TMP"
}Memuatkan Kod yang Diuji
Untuk menguji fungsi, muatkan skrip anda supaya fungsinya tersedia, kemudian panggil fungsi tersebut secara terus dalam ujian.
setup() {
source ./lib/utils.sh
}
@test "slugify lowercases" {
run slugify "Hello World"
[ "$output" = "hello-world" ]
}Melangkau dan Menangguhkan Ujian
Gunakan skip untuk menandakan ujian sebagai belum dilaksanakan atau tidak disokong pada platform semasa, dengan sebab pilihan.
@test "windows-only feature" {
skip "not supported on Linux"
}Mengintegrasikan dengan CI
Oleh sebab bats mengembalikan kod keluar bukan sifar apabila gagal, ia boleh terus disepadukan ke dalam saluran paip CI sebagai pemeriksaan sebelum penggunaan.
# CI step
bats --tap test/ || exit 1Semakan Pantas
Uji pengetahuan anda tentang Bats.
Ulang Kaji
Anda kini boleh menguji Bash dengan Bats:
- Takrifkan ujian dengan
@test; lulus bermaksud semua arahan keluar dengan kod 0 - Gunakan
rununtuk menangkap$statusdan$output - Sediakan lekapan dengan
setup/teardown - Muatkan skrip untuk menguji fungsi dan jadikan keputusan sebagai pemeriksaan CI
Pelajari Bash dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 22
- Pelajaran
- 88
Soalan Lazim
Adakah pelajaran “Menguji Skrip Bash dengan Bats” percuma?
Ya — teks penuh “Menguji Skrip Bash dengan Bats” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Penguasaan Baris Perintah Linux & Penskripan Bash, tingkat taraf kepada CoddyKit PRO. Kursus Penguasaan Baris Perintah Linux & Penskripan Bash merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Menguji Skrip Bash dengan Bats”?
Tulis ujian automatik untuk skrip shell anda menggunakan rangka kerja pengujian Bats bagi mengesan regresi sebelum ia mencapai persekitaran pengeluaran. Anda berlatih Penguasaan Baris Perintah Linux & Penskripan Bash menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Penguasaan Baris Perintah Linux & Penskripan Bash?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Penguasaan Baris Perintah Linux & Penskripan Bash di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Menguji Skrip Bash dengan Bats” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Penguasaan Baris Perintah Linux & Penskripan Bash ini?
Ya. Setiap pelajaran Penguasaan Baris Perintah Linux & Penskripan Bash menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Penyahpepijatan Skrip Bash (set -x, trap)
- Pengendalian Ralat dan Status Keluar
- Amalan Terbaik Penskripan dan Linting
- Menguji Skrip Bash dengan Bats