pytest: getting AttributeError: 'CaptureFixture' object has no attribute 'readouterror' capturing stdout
pytest: getting AttributeError: 'CaptureFixture' object has no attribute 'readouterror' capturing stdout
这应该是一件简单的事情,但我无法弄清楚导致错误的原因。
我正在关注 pytest docs 如何将标准输出捕获到对象中,但我收到以下错误:
capsys = <_pytest.capture.CaptureFixture object at 0x7f02a1e2f7f0>
def test_can_output_to_stdout(capsys):
print("hello")
> capture = capsys.readouterror()
E AttributeError: 'CaptureFixture' object has no attribute 'readouterror'
test_aaa.py:5: AttributeError
我使用的代码类似于:
import pytest
def test_can_output_to_stdout(capsys):
print("hello")
capture = capsys.readouterror()
assert "hello" in capture.out
我这样调用测试:
py.test --capture=sys --capture=fd test_aaa.py
版本是:
pytest:
py.test --version
This is pytest version 4.6.5, imported from /usr/local/lib/python3.4/site-packages/pytest.p
Python:
python --version
Python 3.4.8
如有任何帮助,我们将不胜感激。
事实证明,复制粘贴可能比编写示例更好。错误与属性名称有关。
应该是capsys.readouterr()
,不是capsys.readouterror()
,完整的:
import pytest
def test_can_output_to_stdout(capsys):
print("hello")
capture = capsys.readouterr()
assert "hello" in capture.out
这应该是一件简单的事情,但我无法弄清楚导致错误的原因。
我正在关注 pytest docs 如何将标准输出捕获到对象中,但我收到以下错误:
capsys = <_pytest.capture.CaptureFixture object at 0x7f02a1e2f7f0>
def test_can_output_to_stdout(capsys):
print("hello")
> capture = capsys.readouterror()
E AttributeError: 'CaptureFixture' object has no attribute 'readouterror'
test_aaa.py:5: AttributeError
我使用的代码类似于:
import pytest
def test_can_output_to_stdout(capsys):
print("hello")
capture = capsys.readouterror()
assert "hello" in capture.out
我这样调用测试:
py.test --capture=sys --capture=fd test_aaa.py
版本是:
pytest:
py.test --version
This is pytest version 4.6.5, imported from /usr/local/lib/python3.4/site-packages/pytest.p
Python:
python --version
Python 3.4.8
如有任何帮助,我们将不胜感激。
事实证明,复制粘贴可能比编写示例更好。错误与属性名称有关。
应该是capsys.readouterr()
,不是capsys.readouterror()
,完整的:
import pytest
def test_can_output_to_stdout(capsys):
print("hello")
capture = capsys.readouterr()
assert "hello" in capture.out