gpt4 book ai didi

python - pytest 将所有输出捕获到标准输出

转载 作者:太空宇宙 更新时间:2023-11-03 14:47:45 25 4
gpt4 key购买 nike

我测试这样打印的“当前行”

def test_clear(capsys):
out = capsys.readouterr()
outputs_more_than_one_line()
assert out.out == 'last line printed'
# impossible to check previously printed lines?

但是,我想检查打印的所有内容。我考虑过 monkeypatching builtins.print,但这似乎并不可靠(不捕获 sys.write.stdout)。无论如何这可能吗?

最佳答案

doc说:

The readouterr() call snapshots the output so far - and capturing will be continued.

因此你应该在打印行之后而不是之前调用 readouterr:

def test_cap(capsys):
for _ in range(2):
print('outputs_more_than_one_line')
out = capsys.readouterr()
assert out.out != 'last line printed'

关于python - pytest 将所有输出捕获到标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48124592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com