引語
上一篇文章,我們向大家推薦了python語言的一個第三方日志庫loguru
,使用非常簡單且功能完備。
但對于我們做自動化測試,經常使用 pytest
框架的小伙伴來說,卻有點小問題。就是 Pytest
內建的日志捕獲機制是在標準庫 logging
的基礎上進行優化過的。 這樣我們在使用 pytest 框架時,如果牽涉到 pytest 自身的日志機制,也就是pytest的內建fixture caplog
實際使用的還是logging標準模塊, 這里loguru
庫定義的日志就難以發生作用。
當然,問題也不大,本文我們簡單探討下這個問題,并介紹下兼容方案。
Pytest 中的caplog
首先我們還是先來介紹下 Pytest 的日志
caplog
是pytest提供的一個內置fixture,用于捕獲和測試日志輸出。
因為這個內置插件的作用,我們在執行pytest測試時,默認只會在用例存在失敗時才會顯示標準輸出和logging
模塊及記錄的日志信息。
比如下面這段代碼:
# test_cap.py
import logging def test_fail(): print("這條信息將在失敗時顯示") assert False def test_pass(): print("這條信息成功時不顯示") assert True def test_exception(): try: result = 1 / 0