这篇文章描述了如何使用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'
我还尝试将
capsys
替换为capfd
,但是出现了相同的错误。出了什么问题,该如何修复?
test_f(capfd)
函数,这样可以吗? - brain stormpy.test
可以为您完成这项工作。它主要执行三个任务:1)收集所有测试;2)运行所有测试;3)生成统计信息和错误输出。 - James Mills