Pytest Logging 消息出现两次

Posted

技术标签:

【中文标题】Pytest Logging 消息出现两次【英文标题】:Pytest Logging messages appear twice 【发布时间】:2021-10-12 21:03:37 【问题描述】:

我的测试框架有以下结构

Master_test_Class.py ---> 保存为冒烟和回归测试套件运行的通用测试用例 Test_Smoke1.py 和 Test_Reg1.py --> 子类继承 Master_test_class.py

我在 pytest.ini 中为 INFO 启用了日志记录

[pytest]
log_cli = 1 
log_cli_level = INFO

下面是我在 conftest.py 中的代码

def pytest_generate_tests(metafunc):
.....
logging.info("This is generated during the test collection !!!")

当我运行任何一个测试文件的测试时,日志会以 pytest.ini 中指定的格式打印两次,然后以红色打印一次

pytest -s Test_Reg1.py

我很迷茫,为什么日志信息会被打印两次。

【问题讨论】:

请分享记录器配置。 【参考方案1】:

这可能是因为您有一个将日志发送到标准输出的日志记录处理程序,解决方案是运行pytest 不带参数-s(这假设日志包含您需要的所有信息)或删除日志记录使用标准输出的处理程序。

【讨论】:

【参考方案2】:

如果您只想查看日志记录模块的输出,请使用--log-cli-level=INFO 作为 pytest 测试运行的参数。由于-s 开关,您看到它两次。并且,要测试它是相同的日志还是不同的日志,请在日志消息中添加时间戳

【讨论】:

以上是关于Pytest Logging 消息出现两次的主要内容,如果未能解决你的问题,请参考以下文章

logging模块进阶2

22-logging模块

logging模块

pytest + yaml 框架 -9.logging日志输出和保存

logging的配置-使用pytest.ini文件进行

(六)pytest-参数化