-
Notifications
You must be signed in to change notification settings - Fork 0
Testing
Pour nous assurer que notre code marche bien comme il faut, et ce au fur et à mesure des commits. Nous utilisons certains outils pour valider de façon automatique tant notre backend que notre frontend.
Très simple à utiliser, pytest nous permet d'importer des fonction, classes ou autre de nos fichiers python et via des assert valider qu'ils font ce qu'on attend d'eux. Pytest a aussi l'avantage de pouvoir produire des statistiques de coverage et de gérer simplement l'asynchrone.
Dans projet, nous l'utilisons pour tester des petits éléments de notre code python, on y teste notamment les méthodes de l'ORM et les schémas de validation.
Notre framework API inclus un client web pour envoyer des requêtes test et vérifier les réponses produites par notre application.
On s'en sert pour faire des tests d'intégration, et donc vérifier que les différentes routes de l'API font ce qu'on attend.
On y valide les status et contenu des réponses HTTP.
Jest est un framework utilisé pour tester le js en général, dans ce projet on s'en sert couplé de vue-test-utils,
Ces outils nous permettent de monter de façon isolée nos composants Vue et y valider l'affichage dynamique et les méthodes par une série d'assertions.
De façon semblable aux tests unitaires python, on s'en sert pour tester des petites parties de notre frontend, sans interaction avec le backend ou autre.
Nightwatch est un outil js qui va lancer notre application et va la visiter avec un navigateur headless. Une fois dedans il peut y effectuer toutes les actions qu'un utilisateur normal pourrait faire.
Après chaque action, il peut vérifier que le contenu rendu est bien celui qu'on attend.
Ces tests dépendent du stack entier et donc servent à valider que le backend et frontend travaillent bien ensemble.
Un docker-compose spécifique à l'environnement de testing a été mis en place, il nous permet de lancer en une seule commande les tests sur des containers isolés de l'application principale.
Une section tests a été incorporée au Makefile du projet, il permet de lancer en une seule commande la catégorie de tests qui nous intéresse, ou même tous les tests. Ceci même pour les tests qui demandent une mise en place d'abord, tels que les e2e et backend qui dépendent de la db avec les bonnes tables et utilisateur admin.
Après chaque commit et lors de la création d'une pull request, github va copier le repository dans un container et lancer tous les tests.
Ceci nous permet de toujours savoir si notre travail sur la branche où on est a pu impacter les tests précédents. Cette action est aussi utilisée, si les tests passent, pour déployer de façon automatique sur un vps.
- R0 + R11. Liens utiles
- R1. Description projet
- R1 + R17. Description client et intéractions
- R2. User Stories
- R3. Justification Backend
- R4. Justification Frontend
- R5. Architecture, fonctionnement et déploiement
- R6. Diagramme UML
- R7. Justification DB
- R8. Diagramme DB
- R9. Documentation API
- R10. Comment installer
- R12. Utilisation GitHub
- R13. Testing
- R14. Sécurité
- R15. Aspects intéressants
- R16. Références utilisées
- R18. Travail en équipe
- R19. Cadre légal
- R20. Conclusions personnelles