我想测试日志记录是否正常工作,但我无法使用 pytest 从日志中捕获日志。
这是一个演示问题的简单示例:
import sys
import logbook
logbook.StreamHandler(sys.stdout, level=logbook.INFO).push_application()
def use_print():
print("This is a dummy message using print")
def test_print(capsys):
use_print()
out, err = capsys.readouterr()
assert err == ""
assert "dummy" in out
def use_logbook():
log = logbook.Logger("Dummy Log")
log.info("This is a dummy message using logbook")
def test_logbook(capsys):
use_logbook()
out, err = capsys.readouterr()
assert err == ""
assert "dummy" in out
两者都print
输出logbook
到标准输出,但 pytest 仅在使用打印而不是日志时捕获标准输出的输出。
如何让 pytest 捕获日志的标准输出?