[英]pytest capturing all output to stdout
我測試了這樣打印的“當前行”
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)。 無論如何這有可能嗎?
醫生說:
readouterr()
調用到目前為止對輸出進行快照 - 並且將繼續捕獲。
因此你應該在打印行之后調用readouterr
,而不是之前:
def test_cap(capsys):
for _ in range(2):
print('outputs_more_than_one_line')
out = capsys.readouterr()
assert out.out != 'last line printed'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.