如何在 Pytest 中添加日誌記錄

前言

在編寫和運行測試時,對於調試和排查問題,添加日誌記錄是一種非常有用的技術。Pytest 是一個流行的 Python 測試框架,開發者通過pytest可以輕鬆地編寫和運行各種測試。本文將介紹如何在 Pytest 中添加日誌記錄,以便更好地理解測試執行過程中的細節和問題。

pytest.ini

我們之前有介紹過pytest.ini文件的使用,可以幫助我們更加方便的執行測試用例,pytest.ini中有單獨爲log日誌增加的一些信息,如下圖:

我們可以對pytest.ini文件做出如下配置:

[pytest]
log_cli = True      
log_cli_level = INFO   
log_cli_format = %(asctime)s [%(levelname)s] | %(filename)s:%(lineno)s | %(message)s       
log_cli_date_format = %Y-%m-%d %H:%M:%S

含義如下:

  • log_cli = True :表示是否實時打開log監測,默認爲False

  • log_cli_level : 表示監測log日誌等級顯示

  • log_cli_format: 表示輸出log日誌顯示格式

  • log_cli_date_format: 表示顯示log時間

運行用例

在我們創建了pytest.ini文件之後,在測試用例編寫時,我們需要導入logging庫,我們的測試用例文件內容如下:

import logging


def test_demo():
    logging.info('這是測試用例01的info...')
    logging.warning('這是測試用例01的warning...')
    logging.error('這是測試用例01的error...')
    assert 1 == 1

運行用例後,控制檯輸出如下:

============================= test session starts =============================
collecting ... collected 1 item

test_demo.py::test_demo 
-------------------------------- live log call --------------------------------
2024-04-09 17:15:21 [INFO] | test_demo.py:5 | 這是測試用例01的info...
2024-04-09 17:15:21 [WARNING] | test_demo.py:6 | 這是測試用例01的warning...
2024-04-09 17:15:21 [ERROR] | test_demo.py:7 | 這是測試用例01的error...
PASSED                                                                   [100%]

============== 1 passed in 0.01s ================

如果我們不滿足於日誌只輸出在控制檯,想要輸出成日誌文件,我們可以修改pytest.ini文件,我們可以做出如下修改:

[pytest]
log_file =pytest_log.txt
log_file_level = INFO
log_file_date_format = %Y-%m-%d %H:%M:%S
log_file_format = %(asctime)s [ %(levelname)s ] %(filename)s:%(lineno)s | %(message)s

運行測試之後,我們可以看到項目中新生成了一個日誌文件,內容如下:

2024-04-09 17:18:39 [ INFO ] test_demo.py:5 | 這是測試用例01的info...
2024-04-09 17:18:39 [ WARNING ] test_demo.py:6 | 這是測試用例01的warning...
2024-04-09 17:18:39 [ ERROR ] test_demo.py:7 | 這是測試用例01的error...

總結

本文主要介紹瞭如何在 Pytest 中添加日誌記錄,以便更好地理解和調試測試代碼。可以根據自己的需求進一步配置和擴展日誌記錄功能,從而更加有效地編寫和運行測試用例。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章