Maîtrisez PyTest et la couverture de code en Python

Découvrez comment utiliser PyTest pour réaliser des tests unitaires et mesurer la couverture de votre code Python.

Détails de la leçon

Description de la leçon

Maintenant que nous savons comment faire des tests unitaires avec PyTest et UnitTest, nous allons voir autre chose : la couverture de code (coverage). Le coverage permet de savoir quelles parties du code ont été testées et lesquelles ne l'ont pas été. Ce n'est pas infaillible, mais cela donne une bonne idée de la couverture des tests.

Pour cette leçon, nous utiliserons PyTest-cov, un plugin de PyTest qui facilite la mesure de la couverture. Nous verrons comment interpréter les rapports de couverture, notamment en HTML, pour identifier les parties du code non testées.

Nous couvrirons également l'utilisation des mocks pour tester des fonctions avec effets de bord, telles que les appels réseau, et comment les intégrer dans vos tests unitaires.

Objectifs de cette leçon

À la fin de cette vidéo, vous serez capable de :

  • Utiliser PyTest-cov pour mesurer la couverture de votre code.
  • Interpréter les rapport de coverage pour identifier les parties non testées.
  • Utiliser des mocks pour tester des fonctions avec des effets de bord.

Prérequis pour cette leçon

Connaissance de base de Python et des tests unitaires avec PyTest et UnitTest.

Métiers concernés

Les techniques présentées dans cette vidéo sont particulièrement utiles pour les développeurs logiciels, les ingénieurs qualité et les testeurs automatisés.

Alternatives et ressources

À la place de PyTest-cov, vous pouvez utiliser coverage.py pour des configurations de coverage en Python.

Questions & Réponses

Le coverage permet de savoir quelles parties de votre code ont été testées et quelles parties ne l'ont pas été, en détectant les lignes de code exécutées lors des tests unitaires.
Il est possible d'avoir une couverture de 100% mais avec de mauvais tests, ou une couverture de 80% avec de bons tests. La qualité des tests est plus importante que la couverture totale.
Les mocks permettent de tester des fonctions avec effets de bord, comme les appels réseau, sans avoir à exécuter réellement ces effets, rendant les tests plus fiables et rapides.