web-dev-qa-db-fra.com

Comment puis-je voir les impressions normales créées lors de l'exécution de pytest?

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?

223
Des

Le commutateur -s désactive la capture par test.

320
hpk42

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')
20
Roman Susi

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
18
Summerfun

Essayezpytest -s -v test_login.pypour plus d’informations dans la console.

-vc'est un court--verbose

-ssignifie 'désactiver toutes les captures'



8
Alex Makarenko

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.

0
Gemini Jain
pytest -v -s scriptname(for single test script)

pytest -v -s (for complete module/package)

pytest -v -s scriptname::function(indiviual function)
0
v.k

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

0
aaa90210