Files
n3wt-school/docs/tests_automatiques.md
2025-06-05 17:20:59 +02:00

60 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Documentation des tests automatiques
Ce document décrit la structure et lutilisation du starter de tests automatiques pour valider tous les endpoints exposés par les fichiers `urls.py` des applications Django du Back-End.
## Objectif
- Vérifier automatiquement que chaque route définie dans le projet répond bien à une requête HTTP (statut attendu : 200, 401, 403, 404).
- Permettre une validation rapide de la couverture des endpoints lors de chaque pipeline CI.
## Structure
- Le fichier principal est `Back-End/test_all_endpoints.py`.
- Ce test utilise `pytest` et `pytest-django` pour parcourir toutes les routes du projet et effectuer une requête GET anonyme.
- Les routes dynamiques (avec paramètres) sont ignorées dans ce starter.
## Exécution
1. Installer les dépendances si besoin :
```sh
pip install pytest pytest-django djangorestframework
```
2. Lancer les tests :
```sh
pytest Back-End/test_all_endpoints.py
```
## Intégration CI
- Ajouter la commande de test dans votre pipeline CI (GitHub Actions, GitLab CI, Jenkins, etc.) :
```sh
pytest Back-End/test_all_endpoints.py
```
## Personnalisation
- Pour tester les routes nécessitant une authentification ou des paramètres, compléter le test avec des cas spécifiques.
- Pour chaque nouvelle route, le test sexécutera automatiquement.
## Ajout
- Ajout d'un fichier de tests automatiques dédié à Auth (`test_auth_endpoints.py`) pour tester tous les endpoints Auth (GET, dynamiques, login JWT, accès protégé, structure JSON).
- Les tests créent un utilisateur et un profilRole de test, réalisent un login, et vérifient les accès aux endpoints principaux, y compris les routes dynamiques et protégées.
## Utilisation
- Lancer les tests avec :
```bash
pytest --json-report --json-report-file=tests_automatiques.json
```
- Le rapport inclura les résultats détaillés pour chaque endpoint Auth.
## Extension
- Étendre sur le même modèle pour les autres applications (School, Subscriptions, etc.)
- Ajouter des tests POST/PUT/DELETE et des cas derreur/permissions.
---
Pour toute question ou évolution, se référer au ticket associé.