-
Notifications
You must be signed in to change notification settings - Fork 0
Documentation technique
Pour ce projet, nous avons voulu améliorer la qualité de code et la maintenabilité. Pour ce faire, certains packages sont disponibles sur internet, voici ceux que nous avons sélectionnés :
- JUnit 5
- JaCoCo
- PiTest
- Swagger
- SonarCloud
JUnit est un framework de test unitaire pour les projets Java. Il permet de créer et d'exécuter des tests automatisés pour vérifier le bon fonctionnement des différentes parties de notre code. Nous l'avons utilisé pour :
- Écrire des tests unitaires pour nos classes et méthodes
- Automatiser l'exécution de ces tests
- Vérifier que notre code produit les résultats attendus
- Détecter rapidement les erreurs et les bogues pendant le développement
Il s'agit d'un outil de couverture de code pour Java, il est utilisé pour mesurer la quantité de code qui a été exécutée lors de l'exécution de tests automatisés. Cela nous permet de trouver et d'éliminer les morceaux de code qui n'ont pas été testés. Dans notre cas, nous l'avons utilisé pour :
- Evaluation de la qualité des tests
- Détection des zones non testées
- Intégration continue : Il s'agit d'une partie nous permettant de vérifier cette couverture avant chaque pull request ou push sur notre branche de développement et principale.
- Rapports : Il permet également de créer des rapports visible sous la forme d'un site html, permettant d'avoir un visuel sur ce qui va et ne va pas.
Pitest est un outil de couverture de mutation pour les projets Java. Il mesure la qualité de nos tests en générant des mutations dans le code source et vérifie si nos tests automatisés détectent ces mutations. Dans notre cas, il est complémentaire et ajoute une couche à JaCoCo. Nous l'avons utilisé pour :
- Évaluer la qualité de nos tests : Il permet de modifier notre code afin de vérifier la solidité de notre code en cas d'oublis de certains éléments. Exemple : Suppression de ligne, Suppression d'un paramètre, etc...
- Détecter les zones non testées
- Intégration continue : Comme pour JaCoCo, il nous est possible de vérifier tout cela dans notre Intégration continue et d'ajouter un trigger permettant de vérifier le taux de couverture et de mutation.
- Créer des rapports visuels pour une meilleure compréhension de la couverture de mutation
Nous avons fait le choix d'utiliser Swagger afin de fournir à l'utilisateur une interface web affichant et décrivant notre API.
Celle-ci est dite "RESTFUL" puisque les méthodes suivent la norme RFC2616 GET permettent d'obtenir, POST de créer, PUT de modifier et DELETE de supprimer.
Afin de pouvoir comprendre comment l'api fonctionne, le descriptif des routes est dispnibles dans Routes HTTP et egalement sur :
- La documentation de l'API REST est disponible via : https://sondage.ronde-lingons.fr/v3/api-docs
- La documentation de l'API REST lisible est disponible via Swagger : https://sondage.ronde-lingons.fr/swagger-ui/index.html
- GET /api/sondage/{id} - Obtenez un sondage
- PUT /api/sondage/{id} - Mettez à jour un sondage
- DELETE /api/sondage/{id} - Supprimez un sondage
- GET /api/sondage/ - Obtenez tous les sondages
- POST /api/sondage/ - Créez un nouveau sondage
- GET /api/participant/{id} - Obtenez un participant
- GET /api/participant/ - Obtenez tous les participants
- POST /api/participant/ - Créez un nouveau participant
- PUT /api/participant/{id} - Mettez à jour un participant
- DELETE /api/participant/{id} - Supprimez un participant
- PUT /api/commentaire/{id} - Mettez à jour un commentaire
- DELETE /api/commentaire/{id} - Supprimez un commentaire
- GET /api/sondage/{id}/commentaires - Obtenez les commentaires d'un sondage
- POST /api/sondage/{id}/commentaires - Créez un commentaire pour un sondage
- GET /api/sondage/{id}/dates - Obtenez les dates disponibles d'un sondage
- POST /api/sondage/{id}/dates - Créez une date pour un sondage
- GET /api/sondage/{id}/maybe - Obtenez les possibles meilleures dates pour un sondage en fonction des disponibilités
- GET /api/sondage/{id}/best - Obtenez les meilleures dates pour un sondage en fonction des disponibilités
- DELETE /api/date/{id} - Supprimez une date
- POST /api/date/{id}/participer - Votez pour une date
- Jacoco Code Coverage:
- Pitest:
- Java CI with Maven:
- Tests E2E:
- Checkstyle:
- pages-build-deployment: