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