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

2.1 KiB
Raw Blame History

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 :
    pip install pytest pytest-django djangorestframework
    
  2. Lancer les tests :
    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.) :
    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 :
    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é.