pytest日志输出格式

1.basicConfig函数

通过上一篇可知,我们可以通过logging.basicConfig对日志输出的级别进行控制,下面详细介绍该函数的参数。
在这里插入图片描述

2.logging模块的格式字符串

在这里插入图片描述
我们对上一篇的代码进行修改,将日志信息不直接打印在控制台,且输出日志打印时间,模块名称,以及行号等。

import logging


my_format = '%(asctime)s-%(filename)s-%(module)s-%(lineno)d'

logging.basicConfig(
    filename='my.log',
    level=logging.INFO,
    format= my_format
)

#
logging.info('infor')
logging.debug('debug')
logging.warning('warning')
logging.error('error')
logging.critical('critical')

输出结果:

2021-05-23 10:37:00,170-test_log2.py-test_log2-13
2021-05-23 10:37:00,170-test_log2.py-test_log2-15
2021-05-23 10:37:00,171-test_log2.py-test_log2-16
2021-05-23 10:37:00,171-test_log2.py-test_log2-17
### Pytest 中的日志配置与使用 Pytest 提供了灵活的方式来管理和记录测试过程中的日志信息。以下是关于如何在 pytest 中配置和使用的详细介绍。 #### 使用命令行参数配置日志 可以通过命令行传递 `--log-format` 和 `--log-date-format` 参数来定义日志格式化方式[^3]。例如: ```bash pytest --log-format="%(asctime)s %(levelname)s [%(filename)s:%(lineno)s] %(message)s" \ --log-date-format="%Y-%m-%d %H:%M:%S" ``` 上述命令会生成带有时间戳、日志级别、文件名以及具体消息的日志条目。 #### 配置 pytest.ini 文件 除了通过命令行设置外,还可以利用项目的 `pytest.ini` 文件来进行全局性的日志配置。下面是一个典型的配置示例: ```ini [pytest] log_cli = True log_cli_level = DEBUG log_date_format = %Y-%m-%d %H:%M:%S log_format = %(asctime)s %(levelname)s [%(filename)s:%(lineno)s] %(message)s ``` 此方法的优点在于无需每次运行时都手动输入复杂的选项,只需一次设定即可长期生效。 #### 日志输出至报告工具 (Allure) 如果正在集成 Allure 报告,则可以结合其功能一起工作。比如先执行测试并将结果保存到指定目录下,之后启动服务查看详细的 HTML 版本报告[^2]: ```bash pytest --alluredir=./report test_module.py allure serve ./report ``` 注意,在这种场景下也可以加入前面提到的日志控制项以增强最终呈现的数据丰富度。 #### 处理失败案例中的日志分析 当某些断言未满足而导致测试用例崩溃时,合理安排的日志可以帮助快速定位问题所在位置[^4]。假设存在这样一个错误比较函数: ```python def test_equal(): assert (1, 2, 3) == (3, 2, 1), f"Tuples are not equal!" ``` 即使该声明抛出了异常,只要之前启用了适当级别的跟踪机制(如DEBUG),就能捕捉更多上下文线索用于后续排查。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远不要矫情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值