我正在使用Pytest编写测试。我有这样的夹具:
@pytest.yield_fixture(autouse=True, scope='session')
def manage_tests():
print("Do stuff...")
do_stuff()
yield
我在那里放了一个print语句,所以当我运行测试时,我可以在控制台中看到它,以便更好地了解程序正在做什么。但是我在控制台中看不到那个文字,我猜测pytest吞下它。有没有办法从灯具打印?
答案 0 :(得分:4)
Pytest不会吞下输出,默认情况下不会显示。要在控制台中查看输出,请尝试使用-s
选项运行测试,例如:
pytest -s <path_to_file>
答案 1 :(得分:2)
使用pytest 3使用此灯具:
@pytest.fixture()
def tprint(request, capsys):
"""Fixture for printing info after test, not supressed by pytest stdout/stderr capture"""
lines = []
yield lines.append
with capsys.disabled():
for line in lines:
sys.stdout.write('\n{}'.format(line))
答案 2 :(得分:0)
我可以看到一份印刷声明。但是有几件重要的事情要注意:
scope=session
,所以这只会在第一次测试中执行。