编写一个pytest函数来检查控制台(stdout)输出。

12 浏览
0 Comments

编写一个pytest函数来检查控制台(stdout)输出。

本文介绍了如何使用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 
    test_add(sys.stdout)
  File "test_pytest.py", line 8, in test_add
    out,err=capsys.readouterr()
AttributeError: 'file' object has no attribute 'readouterr'

我还尝试了将`capsys`替换为`capfd`,但是得到了相同的错误。请问问题出在哪里,如何修复?

0