Les tests sont une partie essentielle du développement de logiciels. Ils permettent de détecter les bogues à un stade précoce et réduisent la probabilité d’erreurs en aval.
Pytest est l’un des frameworks de test les plus populaires pour Python. Il vous permet d’écrire de petits tests lisibles qui peuvent s’adapter à la croissance de votre application. Apprenez à configurer et à utiliser Pytest avec votre code Python.
Configuration de Pytest
Avant d’installer Pytest, il est préférable de créer un environnement virtuel pour isoler votre environnement de test, afin d’éviter les conflits avec d’autres paquets et dépendances.
Pour créer un environnement virtuel, exécutez la commande suivante avant d’installer Pytest.
python -m venv tests
Cela créera un nouvel environnement virtuel nommé tests dans votre répertoire actuel. Pour activer l’environnement, exécutez la commande suivante si vous êtes sous Linux ou Mac :
source tests/bin/activate
Pour Windows, exécutez cette commande :
tests\\Scripts\\activate
Pour installer Pytest, vous pouvez utiliser pip, le gestionnaire de paquets Python, avec cette commande dans votre terminal :
pip install pytest
Si vous n’avez pas Pip, ne vous inquiétez pas ; vous pouvez installer Pip sur Windows, Mac et Linux.
Exécutez la commande suivante pour vérifier si vous avez installé Pytest correctement.
pytest --version
Vous devriez obtenir le numéro de la version installée.
Création de votre premier test
Considérons la fonction suivante qui additionne deux nombres et renvoie le résultat.
def add_numbers(a, b):
return a + b
Plusieurs problèmes peuvent survenir avec cette fonction. Par exemple, imaginez ce qui se passe si vous appelez la fonction avec des valeurs non numériques telles que None ou une valeur de type string. Il s’agit là de quelques-uns des cas limites potentiels qui peuvent entraîner l’échec de la fonction.
L’un des premiers tests que vous écrivez doit vérifier si la fonction renvoie le résultat attendu. Pour ce faire, vous pouvez utiliser le mot-clé assert pour comparer la sortie réelle de la fonction à la sortie attendue. Dans le cas de la fonction add_numbers, la fonction de test pourrait ressembler à ceci :
def test_add_numbers():
assert add_numbers(2, 3) == 5
assert add_numbers(-1, 1) == 0
assert add_numbers(0, 0) == 0
Cette fonction de test comprend trois instructions assert, chacune d’entre elles comparant la sortie de la fonction add_numbers à une valeur attendue. Le premier test vérifie que l’addition de 2 et de 3 donne 5, le deuxième que l’addition de -1 et de 1 donne 0 et le troisième que l’addition de 0 et de 0 donne 0.
Après avoir écrit vos tests, l’étape suivante consiste à les exécuter. Pour ce faire avec Pytest, naviguez jusqu’au répertoire contenant votre fichier de test et exécutez la commande pytest :
pytest
Si tout fonctionne comme prévu, vous verrez un…