Schreiben Sie eine pytest Funktion zur überprüfung der Ausgabe auf die Konsole (stdout)

Dieser link gibt es eine Beschreibung wie zu verwenden pytest für die Erfassung Konsole-Ausgaben.
Ich habe versucht, auf diesem folgenden einfachen code, aber ich bekomme Fehler

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 falsch ist und was fix benötigt? danke

BEARBEITEN:
Als pro Kommentar, den ich geändert habe capfd, 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)
InformationsquelleAutor brain storm | 2013-12-10
Schreibe einen Kommentar