遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

pytest简易教程(26):pytest中日志配置

 

pytest简易教程汇总,详见https://www.cnblogs.com/uncleyong/p/17982846

日志格式配置

pytest.ini,内容包含terminal和日志文件

[pytest]
addopts = --capture=no


;日志开关 true/false、1/0
log_cli = 1


;输出到terminal
;日志级别
log_cli_level = info
;打印详细日志,相当于命令行加 -vs
;addopts = --capture=no
;日志格式
log_cli_format = %(asctime)s [%(levelname)s] %(message)s (%(filename)s:%(lineno)s)
;日志时间格式
log_cli_date_format = %Y-%m-%d %H:%M:%S


; 输出到文件
;日志文件位置
log_file = ./log/test.log
;日志文件等级
log_file_level = info
;日志文件格式
log_file_format = %(asctime)s [%(levelname)s] %(message)s (%(filename)s:%(lineno)s)
;日志文件日期格式
log_file_date_format = %Y-%m-%d %H:%M:%S

 

说明:

1、日志文件以写入模式打开,每次运行测试都会覆盖上一次日志文件内容
2、日志输出的时候不要用print,要采用logger进行输出

 

使用

示例:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : 韧
# @wx :ren168632201
# @Blog :https://www.cnblogs.com/uncleyong/

import logging
logger = logging.getLogger(__name__)

def test_case():
    logger.info("断言1==1")
    assert 1==1

  

结果:

 

生成了日志目录和文件

 

 

待解决:

如果使用loguru:from loguru import logger

日志没写入日志文件

 

动态生成log文件名

conftest.py中:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: 韧
# @wx: ren168632201
# @Blog: https://www.cnblogs.com/uncleyong/

import os
from datetime import datetime


# 动态生成log文件的名称,哪怕配置文件中配置了log_file = ./log/test.log也不会生效
def pytest_configure(config):
    time_now = datetime.now().strftime('%Y-%m-%d_%H-%M-%S')
    config.option.log_file = os.path.join(config.rootdir, 'log', f'{time_now}.log')

 

结果:

 

 

 

【bak】

 

posted @ 2024-02-23 22:25  全栈测试笔记  阅读(270)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end