De Linux-opdrachtregel en Bash-scripting beheersen · Les

Bash-scripts testen met Bats

Schrijf geautomatiseerde tests voor uw shellscripts met het testframework Bats, zodat u regressies opvangt voordat ze productie bereiken.

Les 4 van 413 stappen

Bash-scripts testen met Bats is een gratis De Linux-opdrachtregel en Bash-scripting beheersen-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject De Linux-opdrachtregel en Bash-scripting beheersen. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus De Linux-opdrachtregel en Bash-scripting beheersen bevat in totaal 4 lessen.

Waarom shellscripts testen?

Scripts die zonder toezicht worden uitgevoerd (cron, CI) mislukken stilletjes. Geautomatiseerde tests controleren het gedrag, zodat wijzigingen werkende code niet breken.

Kennismaken met Bats

Bats (Bash Automated Testing System) is een TAP-compatibel raamwerk voor het testen van shellcode. Tests zijn zelf Bash-bestanden.

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

Opbouw van een testbestand

Een Bats-bestand eindigt op .bats en definieert tests met het sleutelwoord @test en een beschrijving.

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

Tests uitvoeren

Voer een bestand of een volledige map uit met de opdracht bats. Een test slaagt wanneer elke opdracht erin eindigt met 0.

bats test/
bats math.bats

De helper run

De opdracht run voert een opdracht uit en legt de afsluitcode vast in $status en de uitvoer in $output, zonder de test af te breken.

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

Uitvoer controleren

Vergelijk $output met de verwachte tekst. Je kunt ook specifieke regels indexeren met ${lines[0]}.

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

Foutsituaties testen

Goede tests controleren ook foutpaden. Controleer op een niet-nulwaarde van $status wanneer een opdracht moet mislukken.

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

Instellen en opruimen

Definieer de functies setup() en teardown(), die vóór en na ELKE test worden uitgevoerd om testgegevens voor te bereiden en op te ruimen.

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

De te testen code laden

Om functies te testen, laad je je script zodat de functies beschikbaar zijn en roep je ze vervolgens rechtstreeks aan in tests.

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

Tests overslaan en uitstellen

Gebruik skip om een test te markeren als nog niet geïmplementeerd of niet ondersteund op het huidige platform, eventueel met een reden.

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

Integreren met CI

Omdat bats bij een fout een niet-nul afsluitcode teruggeeft, kan het rechtstreeks worden opgenomen in CI-pijplijnen als controle vóór de implementatie.

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

Korte controle

Test je kennis van Bats.

Samenvatting

Je kunt nu Bash testen met Bats:

  • Definieer tests met @test; geslaagd betekent dat alle opdrachten eindigen met 0
  • Gebruik run om $status en $output vast te leggen
  • Bereid testgegevens voor met setup/teardown
  • Laad scripts om functies te testen en laat CI beslissingen nemen op basis van de resultaten
Gratis beginnen

Leer Bash met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
22
Lessen
88

Veelgestelde vragen

Is de les “Bash-scripts testen met Bats” gratis?

Ja — de volledige tekst van “Bash-scripts testen met Bats” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus De Linux-opdrachtregel en Bash-scripting beheersen wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus De Linux-opdrachtregel en Bash-scripting beheersen bevat in totaal 4 lessen.

Wat leer ik in “Bash-scripts testen met Bats”?

Schrijf geautomatiseerde tests voor uw shellscripts met het testframework Bats, zodat u regressies opvangt voordat ze productie bereiken. Je oefent met De Linux-opdrachtregel en Bash-scripting beheersen door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met De Linux-opdrachtregel en Bash-scripting beheersen te beginnen?

Ervaring vooraf is niet nodig. De Linux-opdrachtregel en Bash-scripting beheersen op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Bash-scripts testen met Bats”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over De Linux-opdrachtregel en Bash-scripting beheersen?

Ja. Elke les over De Linux-opdrachtregel en Bash-scripting beheersen bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Bash-scripts debuggen (set -x, trap)
  2. Foutafhandeling en afsluitstatus
  3. Best practices voor scripting en linting
  4. Bash-scripts testen met Bats
← Terug naar De Linux-opdrachtregel en Bash-scripting beheersen