Tests

Tester son code Python avec pytest : un premier test sans stress

Apprenez à tester une fonction Python avec pytest : installation, premier test, lecture des résultats et erreurs fréquentes expliquées simplement.

Par Julien Mercier 8 min de lecture
Tester son code Python avec pytest : un premier test sans stress

Oui : pytest est adapté à un premier projet Python, car il vérifie automatiquement qu’une fonction renvoie le résultat attendu. Pour commencer, installez-le dans l’environnement du projet, créez un fichier test_*.py et écrivez une assertion.

Un test ne prouve pas que tout le programme est correct : il vérifie seulement les situations que vous avez choisies. Vous pouvez le relancer après chaque modification pour repérer un comportement qui a changé.

Installer pytest

Installez pytest dans l’environnement de votre projet pour éviter de mélanger les bibliothèques de plusieurs projets. Avec uv, créez un projet si nécessaire, puis ajoutez pytest comme dépendance de développement :

uv init budget-tests

cd budget-tests

uv add --dev pytest

Avec pip, créez d’abord un environnement virtuel, puis installez pytest. Le guide créer un environnement virtuel avec venv explique sa création et son activation.

python -m venv .venv

python -m pip install pytest

Une fois pytest installé, lancez-le avec uv run pytest ou python -m pytest. Ces commandes utilisent pytest associé au projet ou à l’environnement actif ; la prise en main officielle de pytest et la documentation de uv peuvent aider si une commande n’est pas reconnue.

Écrire et lancer un premier test

Dans le dossier du projet, créez calcul.py avec une fonction qui calcule un prix TTC :

def prix_ttc(prix_ht, taux_tva):

    return prix_ht * (1 + taux_tva / 100)

Créez ensuite test_calcul.py dans le même dossier. Le préfixe test_ permet à pytest de repérer le fichier, et la fonction de test doit aussi commencer par test_.

from calcul import prix_ttc

 

def test_prix_ttc_avec_tva_a_20_pourcent():

    assert prix_ttc(50, 20) == 60

Ouvrez un terminal dans ce dossier, puis lancez l’une des commandes suivantes :

uv run pytest

python -m pytest

Si le test réussit, pytest affiche un point puis un résumé. Cela confirme uniquement que prix_ttc(50, 20) renvoie bien 60.

Lire un échec

Si vous remplacez temporairement 60 par 59 dans l’assertion, le test échoue. pytest indique le test concerné, la ligne de l’assertion, la valeur obtenue et celle attendue.

Un échec peut venir du programme ou d’une attente incorrecte dans le test. Ici, la fonction produit 60 alors que le test demande 59 : rétablissez 60, relancez pytest et conservez le test pour vérifier ce calcul après de futures modifications.

Blocages fréquents

  • pytest n’est pas trouvé : vérifiez l’environnement actif, ou utilisez uv run pytest ou python -m pytest.
  • Aucun test n’est lancé : vérifiez que le fichier et la fonction commencent par test_.
  • ModuleNotFoundError pour calcul : pour cet exercice, placez calcul.py et test_calcul.py dans le même dossier.
  • Erreur d’indentation : décalez les lignes d’une fonction de façon cohérente. Les tracebacks Python indiquent le fichier et la ligne à examiner.

Commentaires · Aucun commentaire pour l'instant

Soyez le premier à réagir.

Laisser un commentaire