0Pricing
DevOps Bootcamp · Pelajaran

Menguji Skrip Bash dengan Bats

Tulis pengujian otomatis untuk skrip shell Anda menggunakan kerangka pengujian Bats guna menemukan regresi sebelum mencapai produksi.

Menguji Skrip Bash dengan Bats adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Mengapa Menguji Skrip Shell?

Skrip yang berjalan tanpa pengawasan (cron, CI) dapat gagal tanpa terlihat. Pengujian otomatis memverifikasi perilaku agar perubahan tidak merusak kode yang sudah berfungsi.

Memperkenalkan Bats

Bats (Bash Automated Testing System) adalah kerangka kerja yang sesuai dengan TAP untuk menguji kode shell. Pengujian itu sendiri berupa berkas Bash.

# Install on Debian/Ubuntu
sudo apt-get install bats

Struktur Berkas Pengujian

Berkas Bats diakhiri dengan .bats dan mendefinisikan pengujian menggunakan kata kunci @test serta deskripsi.

@test "addition works" {
  result=$(( 2 + 2 ))
  [ "$result" -eq 4 ]
}

Menjalankan Pengujian

Jalankan satu berkas atau seluruh direktori dengan perintah bats. Pengujian berhasil jika setiap perintah di dalamnya keluar dengan status 0.

bats test/
bats math.bats

Pembantu run

Perintah run menjalankan perintah dan menangkap kode keluarnya dalam $status serta keluarannya dalam $output tanpa membatalkan pengujian.

@test "ls succeeds" {
  run ls /tmp
  [ "$status" -eq 0 ]
}

Membuat Pernyataan atas Keluaran

Bandingkan $output dengan teks yang diharapkan. Anda juga dapat mengindeks baris tertentu dengan ${lines[0]}.

@test "echo prints hello" {
  run echo hello
  [ "$output" = "hello" ]
}

Menguji Kasus Kegagalan

Pengujian yang baik juga memeriksa jalur kesalahan. Pastikan $status bernilai bukan nol saat perintah seharusnya gagal.

@test "missing file fails" {
  run cat /no/such/file
  [ "$status" -ne 0 ]
}

Penyiapan dan Pembersihan

Tentukan fungsi setup() dan teardown() yang berjalan sebelum dan sesudah setiap pengujian untuk menyiapkan dan membersihkan perlengkapan pengujian.

setup() {
  TMP=$(mktemp -d)
}
teardown() {
  rm -rf "$TMP"
}

Memuat Kode yang Diuji

Untuk menguji fungsi, muat skrip Anda agar fungsinya tersedia, lalu panggil fungsi tersebut secara langsung di dalam pengujian.

setup() {
  source ./lib/utils.sh
}
@test "slugify lowercases" {
  run slugify "Hello World"
  [ "$output" = "hello-world" ]
}

Melewati dan Menunda Pengujian

Gunakan skip untuk menandai pengujian sebagai belum diterapkan atau tidak didukung pada platform saat ini, dengan alasan opsional.

@test "windows-only feature" {
  skip "not supported on Linux"
}

Mengintegrasikan dengan CI

Karena bats mengembalikan kode keluar bukan nol saat gagal, perintah ini dapat langsung digunakan dalam pipeline CI sebagai gerbang sebelum penerapan.

# CI step
bats --tap test/ || exit 1

Pemeriksaan Cepat

Uji pengetahuan Anda tentang Bats.

Ringkasan

Sekarang Anda dapat menguji Bash dengan Bats:

  • Tentukan pengujian dengan @test; berhasil berarti semua perintah keluar dengan status 0
  • Gunakan run untuk menangkap $status dan $output
  • Siapkan perlengkapan pengujian dengan setup/teardown
  • Muat skrip untuk menguji fungsi dan menjadikan hasilnya sebagai gerbang CI

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menguji Skrip Bash dengan Bats” gratis?

Ya — teks lengkap “Menguji Skrip Bash dengan Bats” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menguji Skrip Bash dengan Bats”?

Tulis pengujian otomatis untuk skrip shell Anda menggunakan kerangka pengujian Bats guna menemukan regresi sebelum mencapai produksi. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?

Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Menguji Skrip Bash dengan Bats” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?

Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Men-debug Skrip Bash (set -x, trap)
  2. Penanganan Galat & Status Keluar
  3. Praktik Terbaik Pembuatan Skrip & Linting
  4. Menguji Skrip Bash dengan Bats
← Kembali ke DevOps Bootcamp