написать функцию pytest для проверки вывода на консоли (stdout) в Python?
Эта ссылка дает описание, как использовать pytest для захвата выходов консоли. Я попробовал следующий простой код, но получаю ошибку
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)
Выход:
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'
что не так и что нужно исправить? благодарю вас
РЕДАКТИРОВАТЬ: согласно комментарию, я изменилcapfd
, но я все еще получаю ту же ошибку
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)