pytest 不会向我显示测试期间发生的记录器记录。检查配置中是否启用了日志记录并且该级别为 DEBUG
,将 log_cli = 1
添加到 pytest.ini,仍然不起作用。
它可以很好地捕获 stdout 和 stderr,因此显示了通常的 print()
。
按照 here 的建议尝试使用 -r a
运行,但无济于事。
在我的测试中添加了 caplog
,caplog.records
是 []
。
我知道代码到达日志发射点(通过使用打印)。
编辑:最小的可重复示例:
class TestLogging:
def test_logging(self):
from app import logger
logger.error("log test") # nothing shows up
print("print test") # prints as expected
assert False
def test_caplog(self, caplog):
from app import logger
logger.error("log test") # nothing shows up
print(caplog.records) # prints '[]'
assert False
与
一起运行
FLASK_ENV=testing pipenv run pytest controller/tests/test_user_routes.py -k test_logging
和
FLASK_ENV=testing pipenv run pytest controller/tests/test_user_routes.py -k test_caplog
EDIT2:设置以及如何设置记录器:https://pastebin.com/EG8g90m5