【问题标题】:How to capture logbook stdout output with pytest?如何使用 pytest 捕获日志标准输出输出?
【发布时间】:2020-06-15 07:04:45
【问题描述】:

我想测试日志记录是否正常工作,但我无法使用 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

printlogbook 都输出到 stdout,但 pytest 仅在使用 print 时捕获 stdout 的输出,而不是 logbook。

如何让 pytest 捕获日志的标准输出?

【问题讨论】:

    标签: python pytest logbook


    【解决方案1】:

    尝试使用capfd 而不是capsys

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-28
      • 2020-05-20
      • 2019-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多