المهارات bats-testing-patterns
🧪

bats-testing-patterns

آمن

Schreiben Sie robuste Shell-Script-Tests mit BATS

متاح أيضًا من: wshobson

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

يدعم: Claude Codex Code(CC)
🥉 75 برونزي
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "bats-testing-patterns". Schreiben Sie Tests für ein Script, das CSV-Dateien verarbeitet

النتيجة المتوقعة:

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

استخدام "bats-testing-patterns". Wie teste ich, dass mein Script mit ungültigem Input korrekt fehlschlägt?

النتيجة المتوقعة:

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

استخدام "bats-testing-patterns". Richten Sie Testing für ein CLI-Tool mit mehreren Commands ein

النتيجة المتوقعة:

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

التدقيق الأمني

آمن
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
الملفات التي تم فحصها
652
الأسطر التي تم تحليلها
0
النتائج
1
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
50
المجتمع
100
الأمان
100
الامتثال للمواصفات

ماذا يمكنك بناءه

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.

جرّب هذه الموجهات

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.

أفضل الممارسات

  • 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

تجنب

  • 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

الأسئلة المتكررة

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

تفاصيل المطور

بنية الملفات