Comment intégrer les Badges de Tests
Ce guide explique comment configurer et utiliser le système de badges automatiques pour les tests dans les spécifications.🎯 Vue d’ensemble
Le système de badges permet d’afficher automatiquement le statut des tests (Checkly pour le frontend, Vitest pour le backend) directement dans les fichiers de spécification. Les badges sont mis à jour automatiquement après chaque exécution des tests.📋 Prérequis
- Node.js 20+
- Variables d’environnement configurées :
CHECKLY_API_KEY: Clé API ChecklyCHECKLY_ACCOUNT_ID: ID du compte Checkly
🔧 Configuration
1. Variables d’Environnement
Ajoutez les variables d’environnement dans votre.env ou dans les secrets GitHub Actions :
2. Configuration Vitest
Le fichiervitest.config.ts est déjà configuré pour générer des rapports JSON dans reports/vitest/results.json.
3. Workflow GitHub Actions
Le workflow.github/workflows/tests.yml est configuré pour :
- Exécuter les tests backend (Vitest)
- Exécuter les tests frontend (Playwright)
- Générer les badges automatiquement
- Commiter les badges mis à jour
📝 Utilisation du Template
Créer une Nouvelle Spécification
- Copiez le template depuis
docs/templates/spec-template.md - Placez-le dans
docs/specifications/ - Remplissez les sections avec votre contenu
- Les badges seront générés automatiquement lors de la prochaine exécution des tests
Structure du Template
Le template inclut une section de badges qui sera automatiquement mise à jour :🚀 Génération Manuelle des Badges
Pour générer les badges manuellement :🔄 Workflow Automatique
Après un Commit
- Le workflow GitHub Actions
tests.ymlse déclenche - Les tests backend (Vitest) sont exécutés
- Les tests frontend (Playwright) sont exécutés
- Les résultats Checkly sont récupérés via l’API
- Les badges sont générés et mis à jour dans les spécifications
- Les changements sont commités automatiquement (si push sur master/main)
Mapping Tests ↔ Spécifications
Le scriptgenerate-test-badges.js associe automatiquement les tests aux spécifications en se basant sur :
- Checkly : Le nom du check Checkly doit contenir le nom de la spécification (ou vice versa)
- Vitest : Le chemin du fichier de test doit correspondre au nom de la spécification
- Spécification :
docs/specifications/swing-position-workflow.md - Test Checkly :
positions-filters→ sera associé si le nom contient “position” - Test Vitest :
packages/functions/src/tests/positions/swingPositionService.test.ts→ sera associé car contient “position”
📊 Format des Badges
Les badges utilisent Shields.io avec les couleurs suivantes :- 🟢 brightgreen : Tous les tests passent
- 🔴 red : Au moins un test échoue
- ⚪ lightgrey : Aucun test trouvé
🧪 Tests
Tests Frontend (Checkly)
Les tests frontend sont exécutés via Checkly et surveillent l’expérience utilisateur en production. Fichiers de tests :features/[nom-du-test].spec.ts
Configuration Checkly :
Tests Backend (Vitest)
Les tests backend sont exécutés via Vitest et valident la logique métier. Fichiers de tests :packages/functions/src/tests/[module]/[nom-du-test].test.ts
Exécution :
🔍 Dépannage
Les badges ne se mettent pas à jour
- Vérifiez que les variables d’environnement Checkly sont définies
- Vérifiez que le fichier
reports/vitest/results.jsonexiste après l’exécution des tests - Vérifiez les logs du workflow GitHub Actions
Les badges affichent “no-tests”
Cela signifie qu’aucun test n’a été trouvé pour cette spécification. Vérifiez :- Que les noms des tests correspondent au nom de la spécification
- Que les fichiers de tests existent et sont correctement nommés
- Que les tests sont bien exécutés
Erreur lors de la récupération Checkly
Si l’API Checkly retourne une erreur :- Vérifiez que
CHECKLY_API_KEYest valide - Vérifiez que
CHECKLY_ACCOUNT_IDest correct - Vérifiez que les checks Checkly sont bien déployés
📚 Références
📖 Exemple Concret
Voici un exemple complet d’une spécification avec badges de tests :Exemple : Badges de tests
📊 Statut des Tests
Tests Frontend (Checkly)🎯 Objectif
Cet exemple sert de validation “end-to-end” pour :- le lien Spécification ↔ Tests
- la génération du rapport Vitest JSON (
reports/vitest/results.json) - la mise à jour automatique des badges dans les specs
🧪 Tests associés
- Frontend (Playwright / Checkly) :
features/test-badges-example.spec.ts - Backend (Vitest) :
packages/functions/src/tests/specs/test-badges-example.test.ts
✅ Critères d’acceptation
- Le test frontend passe et peut être déployé/surveillé via Checkly.
- Le test backend passe via Vitest.
- Après exécution du job CI, la section “Statut des Tests” est mise à jour automatiquement dans ce fichier.