Parfois, je veux simplement insérer des instructions d'impression dans mon code et voir ce qui est imprimé lorsque je l'exerce. Ma façon habituelle de "faire de l'exercice" est d'utiliser les tests pytest existants. Mais lorsque je les lance, je ne vois pas la sortie standard (du moins dans PyCharm, mon IDE).
Existe-t-il un moyen simple de voir la sortie standard lors d’une analyse pytest?
Le commutateur -s
désactive la capture par test.
Selon la documentation pytest , la version 3 de pytest peut temporairement désactiver la capture dans un test:
def test_disabling_capturing(capsys):
print('this output is captured')
with capsys.disabled():
print('output not captured, going directly to sys.stdout')
print('this output is also captured')
Lors de l'exécution du test, utilisez l'option -s
. Toutes les instructions d'impression dans exampletest.py
seront imprimées sur la console lors de l'exécution du test.
py.test exampletest.py -s
Essayezpytest -s -v test_login.py
pour plus d’informations dans la console.
-v
c'est un court--verbose
-s
signifie 'désactiver toutes les captures'
Si vous utilisez PyCharm IDE, vous pouvez exécuter ce test individuel ou tous les tests à l'aide de la barre d'outils Exécuter. La fenêtre de l'outil Exécuter affiche la sortie générée par votre application et vous pouvez y voir toutes les instructions d'impression dans le cadre d'une sortie de test.
pytest -v -s scriptname(for single test script)
pytest -v -s (for complete module/package)
pytest -v -s scriptname::function(indiviual function)
Les autres réponses ne fonctionnent pas. La manière niquement de voir la sortie capturée utilise l'indicateur suivant:
pytest --show-capture all