Bash-scripts testen met Bats
Schrijf geautomatiseerde tests voor uw shellscripts met het testframework Bats, zodat u regressies opvangt voordat ze productie bereiken.
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 batsOpbouw 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.batsDe 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 1Korte 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
runom$statusen$outputvast te leggen - Bereid testgegevens voor met
setup/teardown - Laad scripts om functies te testen en laat CI beslissingen nemen op basis van de resultaten
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
- Bash-scripts debuggen (set -x, trap)
- Foutafhandeling en afsluitstatus
- Best practices voor scripting en linting
- Bash-scripts testen met Bats