{{tag>dev python test-unitaire console cli}} ===== Python : Tester une sortie sur la console avec Pytest ====== On souhaite écrire un test unitaire pour vérifier la sortie produite sur le terminal par la méthode ''Writer.hello_user()''. La classe est définie dans le fichier ''parts.py'' myapp/ ├── __init__.py └── models    ├── __init__.py    └── parts.py from abc import abstractmethod class Writer: @abstractmethod def hello_user(username="Alice"): print (f"Hello {username}!") Pour les tests on crée une arborescence dédiée basée sur l'arborescence des sources : myapp/ tests/ ├── __init__.py └── myapp    ├── __init__.py    └── models       ├── __init__.py       └── test_parts.py Pour pouvoir évaluer le contenu de la console on passe le paramètre **capfd** à la fonction de test: from myapp.models.parts import Writer def test_hello_user(capfd): a_user = "John Doe" # L'appel de la méthode doit afficher un message sur la console Writer.hello_user(a_user) out, err = capfd.readouterr() assert out == "Hello John Doe!\n"