bats-testing-patterns
Maîtriser les tests shell avec le framework Bats
Écrire des scripts shell fiables sans tests conduit à des échecs en production. Cette compétence vous enseigne des modèles de test Bats complets pour valider les scripts shell avec des tests unitaires, des fixtures et une intégration CI/CD.
Télécharger le ZIP du skill
Importer dans Claude
Allez dans Paramètres → Capacités → Skills → Importer un skill
Activez et commencez à utiliser
Tester
Utilisation de "bats-testing-patterns". Créer un test Bats pour vérifier que mon script de sauvegarde crée les bons fichiers
Résultat attendu:
Fichier de test Bats généré avec des blocs @test pour la validation de création de fichiers, fonction de configuration créant un répertoire de test temporaire, nettoyage dans teardown des fichiers de test, et assertions vérifiant l'existence et les permissions des fichiers.
Utilisation de "bats-testing-patterns". Ajouter des tests de gestion d'erreurs pour ma fonction de validation
Résultat attendu:
Cas de test créés pour les arguments manquants, les formats d'entrée invalides, les scénarios de permission refusée, et les messages d'erreur utiles. Chaque test utilise la commande run et vérifie le statut de sortie et le message d'erreur.
Utilisation de "bats-testing-patterns". Configurer des fixtures de test pour des scénarios d'entrée complexes
Résultat attendu:
Structure de répertoire de fixtures implémentée avec des fichiers d'entrée d'exemple, fonction d'aide pour charger les fixtures dans la configuration, et assertions de comparaison utilisant diff contre les fichiers de sortie attendus.
Audit de sécurité
SûrStatic analysis flagged 103 patterns including external commands, filesystem operations, and network references. All findings are false positives from educational code examples teaching Bats testing patterns. The skill contains no executable code, only documentation with test pattern examples. URLs reference legitimate documentation sites (GitHub, readthedocs.io). No security risks identified.
Score de qualité
Ce que vous pouvez construire
Ingénieur DevOps testant les scripts de déploiement
Écrire des tests unitaires complets pour les scripts d'automatisation du déploiement afin de valider le comportement avant la mise en production. Tester la configuration, le nettoyage, la gestion des erreurs et les cas limites.
Développeur implémentant le TDD pour les utilitaires shell
Appliquer la méthodologie de développement piloté par les tests au développement de scripts shell. Écrire les tests en premier, puis implémenter la fonctionnalité pour répondre aux spécifications des tests.
Ingénieur SRE validant les scripts système
Créer des suites de tests automatisées pour les scripts d'administration système dans les pipelines CI/CD. Valider que les scripts fonctionnent dans différents environnements et dialectes shell.
Essayez ces prompts
Créer un fichier de test Bats pour mon script qui valide l'analyse des arguments de ligne de commande et les codes de sortie
Ajouter des fonctions de configuration et de nettoyage à mon test Bats qui créent des répertoires temporaires et nettoient les fixtures de test
Me montrer comment simuler la commande curl dans mes tests Bats afin de pouvoir tester les fonctions API sans vrais appels réseau
Créer un workflow GitHub Actions qui exécute ma suite de tests Bats à chaque pull request avec le format de sortie TAP
Bonnes pratiques
- Utiliser les fonctions de configuration et de nettoyage pour créer des environnements de test isolés avec des répertoires temporaires qui sont supprimés après chaque test
- Simuler les dépendances et commandes externes pour rendre les tests rapides, déterministes et indépendants des services externes ou de l'état du système
- Écrire des noms de tests descriptifs qui expliquent clairement ce qui est validé, rendant les échecs de tests plus faciles à diagnostiquer et comprendre
Éviter
- Éviter les tests qui dépendent d'un état système spécifique ou de fichiers en dehors du répertoire de test, ce qui rend les tests fragiles et non portables
- Ne pas sauter le nettoyage dans teardown, car les fichiers temporaires résiduels s'accumulent et peuvent causer des échecs de tests ou remplir l'espace disque
- Ne jamais tester plusieurs comportements non liés dans un seul cas de test, ce qui rend difficile d'identifier quelle fonctionnalité spécifique a échoué
Foire aux questions
Qu'est-ce que Bats et quand dois-je l'utiliser ?
Comment installer Bats sur mon système ?
Puis-je simuler des commandes externes dans mes tests ?
Comment tester les conditions d'erreur et les échecs ?
Les tests Bats peuvent-ils s'exécuter en parallèle ?
Comment intégrer Bats avec les pipelines CI/CD ?
Détails du développeur
Auteur
wshobsonLicence
MIT
Dépôt
https://github.com/wshobson/agents/tree/main/plugins/shell-scripting/skills/bats-testing-patternsRéf
main
Structure de fichiers
📄 SKILL.md