技能 bats-testing-patterns
🧪

bats-testing-patterns

安全

Écrire des tests robustes pour scripts shell avec BATS

也可從以下取得: wshobson

Apprenez des modèles de test BATS complets pour écrire des tests maintenables et fiables pour les scripts shell dans les pipelines CI/CD.

支援: Claude Codex Code(CC)
🥉 75 青銅
1

下載技能 ZIP

2

在 Claude 中上傳

前往 設定 → 功能 → 技能 → 上傳技能

3

開啟並開始使用

測試它

正在使用「bats-testing-patterns」。 Write tests for a script that processes CSV files

預期結果:

  • Un fichier de test BATS avec des tests pour l'existence du fichier, la validation du contenu, la gestion d'erreur pour les CSV mal formés et les cas de succès

正在使用「bats-testing-patterns」。 How do I test that my script fails correctly with invalid input?

預期結果:

  • Exemple montrant des blocs @test pour les arguments manquants, les options invalides, les scénarios de permission refusée et l'assertion des messages d'erreur

正在使用「bats-testing-patterns」。 Set up testing for a CLI tool with multiple commands

預期結果:

  • Structure de test avec fonctions auxiliaires, configuration des fixtures, nettoyage teardown et tests pour la sortie d'aide, le flag de version et l'exécution de commande principale

安全審計

安全
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
規範符合性

你能建構什麼

Ingénieur DevOps testant des scripts d'infrastructure

Écrivez des tests automatisés pour les scripts de déploiement, les scripts de gestion de configuration et l'automatisation d'infrastructure pour assurer la fiabilité.

Développeur ajoutant des tests aux utilitaires shell

Implémentez le développement piloté par les tests pour les outils CLI et les utilitaires shell afin de détecter les régressions précocement.

Équipe établissant des standards de qualité pour scripts shell

Mettez en place des modèles de test complets et des meilleures pratiques dans toute une équipe pour maintenir une qualité de code cohérente.

試試這些提示

Création de tests de base
Create a BATS test file for my shell script at script.sh that tests the exit code and output of the main function.
Test avec fixtures
Write BATS tests that use fixture files from tests/fixtures/ directory to test file processing functions.
Mocker des commandes externes
Show me how to stub the 'curl' command in BATS to test an API function without making real network requests.
Intégration CI/CD
Create a GitHub Actions workflow and Makefile to run BATS tests in CI/CD with TAP output.

最佳實務

  • Utilisez des noms de tests descriptifs qui indiquent clairement ce qui est testé et le comportement attendu
  • Nettoyez toujours les fichiers temporaires et les ressources dans les fonctions teardown pour éviter la pollution des tests
  • Mockez les dépendances externes comme les appels API et les opérations du système de fichiers pour isoler les tests unitaires

避免

  • Tester plusieurs assertions non liées dans une seule fonction de test viole la responsabilité unique
  • Ignorer teardown ou nettoyage conduit à des tests instables et des fuites de ressources
  • Tester les détails d'implémentation plutôt que le comportement observable rend les tests fragiles

常見問題

Qu'est-ce que BATS ?
BATS (Bash Automated Testing System) est un framework de test pour les scripts shell qui fournit une sortie conforme TAP et une syntaxe de test simple.
Comment installer BATS ?
Installez via Homebrew (brew install bats-core), npm (npm install --global bats) ou clonez depuis GitHub et exécutez le script d'installation.
Quelle est la différence entre setup et setup_file ?
setup() s'exécute avant chaque test, tandis que setup_file() s'exécute une fois avant tous les tests dans un fichier. Utilisez setup_file pour les ressources partagées coûteuses.
Comment tester qu'une commande échoue ?
Utilisez 'run' pour exécuter la commande, puis assertez que $status est non-zéro et vérifiez optionnellement la sortie d'erreur.
Puis-je tester des scripts qui utilisent des commandes externes ?
Oui, utilisez le mocking de fonction avec 'export -f' ou le stubbing de commande en créant des exécutables mock dans un répertoire PATH temporaire.
Comment exécuter les tests en parallèle ?
Utilisez le flag --parallel avec bats, par exemple : bats tests/*.bats --parallel 4