887 Stimmen

Wie kann ich die normale Druckausgabe sehen, die während eines Pytestlaufs erzeugt wird?

Manchmal möchte ich einfach nur ein paar Druckanweisungen in meinen Code einfügen und sehen, was ausgedruckt wird, wenn ich sie ausführe. Normalerweise "übe" ich das mit bestehenden pytest-Tests. Aber wenn ich diese ausführe, scheine ich nicht in der Lage zu sein, eine Standardausgabe zu sehen (zumindest aus PyCharm, meiner IDE).

Gibt es eine einfache Möglichkeit, die Standardausgabe während eines Pytestlaufs zu sehen?

42voto

Roman Susi Punkte 3859

Nach Angaben von pytest-Dokumentation In der Version 3 von pytest kann die Erfassung in einem Test vorübergehend deaktiviert werden:

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')

24voto


Versuchen Sie pytest -s -v test_login.py für weitere Informationen in der Konsole.

-v es ist ein Kurzfilm --verbose

-s bedeutet 'alle Erfassungen deaktivieren'.



12voto

dvvrt Punkte 569

Sie können auch Folgendes aktivieren Live-Logging durch folgende Einstellung in pytest.ini o tox.ini in Ihrem Projekt Root.

[pytest]
log_cli = True

Oder geben Sie es direkt auf dem Client an

pytest -o log_cli=True

11voto

Kiran Sk Punkte 793
pytest test_name.py -v -s

Einfach!

5voto

Vova Punkte 2407

Ich würde vorschlagen, den Befehl -h zu verwenden. Es gibt recht interessante Befehle, die man verwenden kann. aber für diesen speziellen Fall: -s Abkürzung für --capture=no. ist ausreichend

pytest <test_file.py> -s

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X