Schreiben einer Pytest-Funktion zum Überprüfen der Ausgabe auf der Konsole (stdout) in Python?
Dieser Link Beschreibt, wie pytest zum Erfassen von Konsolenausgaben verwendet wird. Ich habe den folgenden einfachen Code ausprobiert, erhalte jedoch eine Fehlermeldung
import sys
import pytest
def f(name):
print "hello "+ name
def test_add(capsys):
f("Tom")
out,err=capsys.readouterr()
assert out=="hello Tom"
test_add(sys.stdout)
Ausgabe:
python test_pytest.py
hello Tom
Traceback (most recent call last):
File "test_pytest.py", line 12, in <module>
test_add(sys.stdout)
File "test_pytest.py", line 8, in test_add
out,err=capsys.readouterr()
AttributeError: 'file' object has no attribute 'readouterr'
Was ist falsch und welche Lösung benötigt? Danke dir
EDIT: Laut Kommentar habe ich mich geändertcapfd
, aber ich bekomme immer noch den gleichen Fehler
import sys
import pytest
def f(name):
print "hello "+ name
def test_add(capfd):
f("Tom")
out,err=capfd.readouterr()
assert out=="hello Tom"
test_add(sys.stdout)