pytest log配置

发现用print在console里面打不出来,所以查了一下关于pytest的log配置,记录

首先需要在根目录新建 pytest.ini

如果你只需要使用print打印日志的话,就只需要这样写

[pytest]
addopts = -s
#addopts 是一个配置项,用于指定传递给 pytest 的额外命令行选项。
#-s 是 pytest 的一个命令行选项,表示禁用输出捕获,允许测试中的 print 语句将输出直接打印到控制台。
#因此,这个配置告诉 pytest 在运行时使用 -s 选项,使得测试中的输出能够直接显示在终端上,而不是被 #pytest 捕获并隐藏。这在调试和查看详细信息时很有用。 

就可以在pytest中在console中看到print打印的东西呢。

但是如果需要log配置的话。

[pytest]
log_cli = true
log_cli_level = INFO
log_cli_format = %(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)
log_cli_date_format = %Y-%m-%d %H:%M:%S

然后在test中这样就可以使用了 


import pytest
import logging

log=logging.getLogger(__name__)

@pytest.fixture
def xxxx():
    ...
    yield xxxx


def test_xxx(xxxx):
    log.error("Log Something")
    ...
    
      

如果要和flask的log全局配置结合使用,请参考我的另一篇blog:
Flask 3.x log全域配置(包含pytest)-CSDN博客