pytest 实时输出log


参考地址:https://www.cnblogs.com/landhu/p/9910460.html

https://www.cnblogs.com/gmjianchi/p/13039376.html

测试代码

#coding: utf-8
import time
from venv import logging
import allure
import pytest
'''
加减乘除测试
'''
class TestCalculate:
    #######################   加法测试用例   #######################
    @allure.title("用例标题0")
    @allure.story("这里是第一个二级标签")
    @pytest.mark.plus
    def test_Plus_1and1(self):
        time.sleep(0.034)
        assert 1 + 1 == 3

    @pytest.mark.plus
    def test_Plus_2and2(self):
        logging.info("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
        logging.error("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
        logging.debug("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
        print("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")
        time.sleep(0.024)
        assert 2 + 2 == 4

实时输出print 日志

执行pytest的时候加上:可以用‘-s’参数或者 ‘--capture=no’

pytest -s
# 或者
pytest --capture=no

实时输出logging打印的日志

方法一、项目根目录或pytest运行目录添加pytest.ini(或者:tox.ini、setup.cfg)文件,内容如下:

[pytest]
log_cli = 1
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

方法二

直接用pytest -o方式重写,这个功能在pytest 3.4之后才实现,如下:

pytest -o log_cli=true -o log_cli_level=INFO

实际在项目过程中,实时日志需要时间及文件名还有行号,可在后面加这样的参数:

 -vv -o log_cli=true -o log_cli_level=INFO --log-date-format="%Y-%m-%d %H:%M:%S" --log-format="%(filename)s:%(lineno)s %(asctime)s %(levelname)s %(message)s"

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM