[PYTHON] Tester la sortie standard avec Pytest

J'ai décidé d'utiliser Python pour les entreprises et je voulais tester la sortie standard, donc comme mémo

Préparation

pip install pytest

Code à tester

Je souhaite tester le programme ci-dessous. Utilisez simplement la méthode say pour afficher la sortie standard.

hogehoge.py


class HogeHoge:
  def __init__(self, name):
    self.name = name
  
  def say(self):
    print("Hello ! My name is " + self.name + ".")

Code de test

Utilisez fixture, capfd dans pytest

test_hogehoge.py


from hogehoge import HogeHoge

def test_say(capfd):
  instance = HogeHoge("Taro")
  instance.say()

  out, err = capfd.readouterr()
  assert out == "Hello ! My name is Taro.\n"
  assert err is ''
[Sun Nov 24 17:58:49 2019] Running: c:\python\python.exe -m pytest
============================== test session starts =============================== 
platform win32 -- Python 3.7.2, pytest-5.3.0, py-1.8.0, pluggy-0.13.1
rootdir: D:\Document\repository\study_pytest
collected 1 item

test\test_hogehoge.py .                                                     [100%] 

=============================== 1 passed in 0.08s ================================ 

Résumé

Utilisez capfd pour tester la sortie standard. Vous pouvez également obtenir des erreurs standard.

Recommended Posts

Tester la sortie standard avec Pytest
Test unitaire du flacon avec pytest
Sortie du journal de test unitaire avec python
Contrôle des relances de test avec Luigi + pytest
Démarrage du développement piloté par les tests avec PySide & Pytest
UnicodeEncodeError lutte avec la sortie standard de python3
Sortez la docstring de la fonction de test dans le rapport avec pytest-html
Renforcez avec le test de code ⑦
Sortie PDF avec Django
Renforcez avec le test de code ⑨
Utilisez Mock avec pytest
Renforcez avec le test de code ③
Sortie Markdown avec Django
Renforcez avec le test de code ⑤
Renforcez avec le test de code ④
Jugement des nombres premiers avec python
Sortie PDF avec WeasyPrint
Thème: Sortie standard [Difficulté ★★★★★]
Problème de sortie standard limité
Renforcez avec le test de code ②
Renforcez avec le test de code ①
Renforcez avec le test de code ⑧
Résumé des entrées / sorties standard
Renforcez avec le test de code ⑨
Obtenez une sortie standard en temps réel avec le sous-processus Python
Journal de sortie au format JSON avec journalisation standard Python
Tester les logiciels embarqués avec Google Test
Entrée standard avec limite de temps
Essayez la sortie Python avec Haxe 3.2
[Django] Formulaire de connexion standard de test [TDD]
Test de charge Websocket avec Locust
Décorateur pour désactiver la sortie standard
Convertir en chaîne lors de la sortie de la sortie standard avec le sous-processus Python
[Compréhension et application de la syntaxe] Changement flexible de la destination de sortie standard Python
Développement piloté par les tests avec Django Partie 3
Développement piloté par les tests avec Django Partie 4
Représentation matricielle avec entrée standard Python
Sortie vers un fichier csv avec Python
Entrée / sortie avec Python (mémo d'apprentissage Python ⑤)
Développement piloté par les tests avec Django Partie 2
Écrire la sortie standard dans un fichier
Rendre la sortie standard non bloquante en Python
Graphique d'appel de sortie avec PyCallGraph
Conforme à la norme de codage Python PEP8
[Note] Sortie Hello world avec python
Essayez de produire de l'audio avec M5 STACK
RPC complété avec des modules Python 3 standard
Développement piloté par les tests avec Django Partie 1
Graphique de sortie networkX avec graphviz (PyGraphviz)
Développement piloté par les tests avec Django Partie 5
Paramètre pour entrer le contenu de la bibliothèque avec pytest et effectuer un test de débogage