Fähigkeiten bats-testing-patterns
🧪

bats-testing-patterns

Sicher

Schreiben Sie robuste Shell-Script-Tests mit BATS

Auch verfügbar von: wshobson

Lernen Sie umfassende BATS-Testing-Patterns kennen, um wartbare und zuverlässige Tests für Shell-Scripts in CI/CD-Pipelines zu schreiben.

Unterstützt: Claude Codex Code(CC)
🥉 72 Bronze
1

Die Skill-ZIP herunterladen

2

In Claude hochladen

Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen

3

Einschalten und loslegen

Teste es

Verwendung von "bats-testing-patterns". Schreiben Sie Tests für ein Script, das CSV-Dateien verarbeitet

Erwartetes Ergebnis:

  • Eine BATS-Testdatei mit Tests für Datei-Existenz, Content-Validierung, Error-Handling für fehlerhafte CSV und Success-Fälle

Verwendung von "bats-testing-patterns". Wie teste ich, dass mein Script mit ungültigem Input korrekt fehlschlägt?

Erwartetes Ergebnis:

  • Beispiel mit @test-Blöcken für fehlende Argumente, ungültige Options, Permission-Denied-Szenarien und Assertion von Error-Messages

Verwendung von "bats-testing-patterns". Richten Sie Testing für ein CLI-Tool mit mehreren Commands ein

Erwartetes Ergebnis:

  • Test-Struktur mit Helper-Funktionen, Fixture-Setup, Teardown-Cleanup und Tests für Help-Output, Version-Flag und Main-Command-Ausführung

Sicherheitsaudit

Sicher
v1 • 2/25/2026

This skill provides documentation and examples for writing BATS tests. All 91 static findings are false positives: external commands are code examples in markdown, network URLs are documentation links, filesystem patterns are legitimate test setup patterns, and weak crypto detection is a false positive due to 'Bats' being misidentified as a cryptographic reference.

2
Gescannte Dateien
652
Analysierte Zeilen
0
befunde
1
Gesamtzahl Audits
Keine Sicherheitsprobleme gefunden
Auditiert von: claude

Qualitätsbewertung

38
Architektur
100
Wartbarkeit
87
Inhalt
31
Community
100
Sicherheit
100
Spezifikationskonformität

Was du bauen kannst

DevOps Engineer: Testen von Infrastructure-Scripts

Schreiben Sie automatisierte Tests für Deployment-Scripts, Konfigurationsmanagement-Scripts und Infrastructure-Automatisierung, um Zuverlässigkeit zu gewährleisten.

Developer: Hinzufügen von Tests zu Shell-Utilities

Implementieren Sie Test-driven Development für CLI-Tools und Shell-Utilities, um Regressionen frühzeitig zu erkennen.

Team: Etablieren von Shell-Script-Qualitätsstandards

Richten Sie umfassende Testing-Patterns und Best-Practices im Team ein, um konsistente Code-Qualität zu gewährleisten.

Probiere diese Prompts

Basic Test-Erstellung
Erstellen Sie eine BATS-Testdatei für mein Shell-Script unter script.sh, das den Exit-Code und die Output der Main-Funktion testet.
Test mit Fixtures
Schreiben Sie BATS-Tests, die Fixture-Dateien aus dem Verzeichnis tests/fixtures/ verwenden, um File-Processing-Funktionen zu testen.
Mocking externer Commands
Zeigen Sie mir, wie ich den 'curl'-Command in BATS stubben kann, um eine API-Funktion zu testen, ohne echte Netzwerk-Requests zu senden.
CI/CD-Integration
Erstellen Sie ein GitHub-Actions-Workflow und eine Makefile, um BATS-Tests in CI/CD mit TAP-Output auszuführen.

Bewährte Verfahren

  • Verwenden Sie deskriptive Test-Namen, die klar angeben, was getestet wird und das erwartete Verhalten
  • Räumen Sie temporäre Dateien und Ressourcen immer in Teardown-Funktionen auf, um Test-Pollution zu verhindern
  • Mocken Sie externe Dependencies wie API-Calls und File-System-Operationen, um Unit-Tests zu isolieren

Vermeiden

  • Das Testen mehrerer nicht zusammenhängender Assertions in einer einzigen Test-Funktion verletzt die Single-Responsibility
  • Das Überspringen von Teardown oder Cleanup führt zu flaky Tests und Resource-Leaks
  • Das Testen von Implementations-Details statt beobachtbarem Verhalten macht Tests spröde

Häufig gestellte Fragen

Was ist BATS?
BATS (Bash Automated Testing System) ist ein Testing-Framework für Shell-Scripts, das TAP-konformen Output und einfache Test-Syntax bereitstellt.
Wie installiere ich BATS?
Installation via Homebrew (brew install bats-core), npm (npm install --global bats) oder Klonen von GitHub und Ausführen des Install-Scripts.
Was ist der Unterschied zwischen setup und setup_file?
setup() wird vor jedem Test ausgeführt, während setup_file() einmal vor allen Tests in einer Datei ausgeführt wird. Verwenden Sie setup_file für teure geteilte Ressourcen.
Wie teste ich, dass ein Command fehlschlägt?
Verwenden Sie 'run', um den Command auszuführen, dann asserten Sie, dass $status ungleich null ist und prüfen Sie optional den Error-Output.
Kann ich Scripts testen, die externe Commands verwenden?
Ja, verwenden Sie Function-Mocking mit 'export -f' oder Command-Stubbing durch Erstellen von Mock-Executables in einem temporären PATH-Verzeichnis.
Wie führe ich Tests parallel aus?
Verwenden Sie den --parallel-Flag mit bats, zum Beispiel: bats tests/*.bats --parallel 4