TD03 - Test unitaire et documentation automatique en Python3

Publié le : 17 Janvier 2020 10:45

À propos de unittest

pytest1.png

Logo de pytest

La bibliothèque unittest intégré à Python est un module de framework XUnit de Kent Beck et Erich Gamma. Cette bibliothèque utilise un modèle pouvant être repété dans de nombreux langage dont C, Java, Perl, SmallTalk. Ce module comporte la gestion des tests unitaires, des suites de test et des lanceurs de tests.

Litterature

Infrastructure

On reprend la même disposition que lors du TD précédent : TD02 - Mise en place de git

On rajoute juste un service web à disposition sur le serveur sme/git. Attention, le port n'est peut être pas ouvert !

pytest-net.png

réseau du TD

Exercices du TD

Et mince, un bug...

Hier, le jeux en ligne ne fonctionne plus... On s'est aperçus qu'un utilisateur avait rentré un caractère bizarre 😺dans l'application. Encore un cas, que le testeur logiciel n'a pas vérifier 🙁.

Ce matin, au daily meeting, on vous rappelle que c'est vous l'expert « DevOps » et que la mise en place du process de test unitaire est dans vos responsabilités.

Votre objectif est la mise en place dans l'application de tests unitaires sur le contrôle des données d'entrée.

Et n'oubliez pas, votre manager veut un rapport de couverture de test pour ce soir ! et celui-ci doit couvrir l'ensemble du programme !

N'oubliez pas de générer la documentation de l'application (actuellement elle est quasi nulle)

Courage !

Capture d’écran 2019-01-10 à 15.53.51.png

Documentation du site

Aide à l'exercice

Pytest - lancement

1 # lancement de pytest
2 python3 -m pytest app.py

Rapport de couverture

1 #Génération du rapport
2 pytest --cov=hangman --cov-report html test/test.py
3 cd htmlcov
4 # Mise en écoute du répertoire sur le port 8080
5 python -m http.server 8080

Ressources

Si vous cassez, votre conteneur

1 #problème d'édition dans le python
2 docker run -it --entrypoint /bin/sh base
1 # pour reprendre vos modifications,
2 docker commit base base2
3 docker run -it --entrypoint /bin/sh base2
 Retour