この記事で解決できる悩み
いずみ
こんな悩みを解決できる記事を書きました!
僕は現役フリーランスエンジニア(歴9年)で、資格は13個保有しています。
結論、pytestでloggingのログ出力をテストするには「caplog」を使用します。
具体的なソースコード付きで分かりやすく解説するので安心してくださいね♪
本記事を読めば、pytestでloggingのログ出力をテストする方法が完全に理解できますよ。
すぐ読み終わるので、ぜひ最後まで読んでくださいね♪
目次
【結論】ログ出力のテストは「caplog」を使う
結論ですが、pytestでloggingのログ出力をテストするにはcaplogを使用します。
caplogは組み込みのfixtureなので、ログ出力のテストが簡単にできます。
超簡単なので詳しく解説していきますね♪
pytestでloggingのログ出力をテストする方法
pytestでloggingのログ出力をテストする方法を解説します。
テスト対象の関数
from logging import getLogger
logger = getLogger(__name__)
def func():
logger.debug("debug")
logger.info("info")
logger.warning("warning")
logger.error("error")
テスト対象の関数では、各ログレベルのログを出力します。
テストコード
from logging import DEBUG, ERROR, INFO, WARNING
from _pytest.logging import LogCaptureFixture
from sample import func
def test_func(caplog: LogCaptureFixture):
caplog.set_level(DEBUG)
func()
assert ("loggerの名前", DEBUG, "debug") in caplog.record_tuples
assert ("loggerの名前", INFO, "info") in caplog.record_tuples
assert ("loggerの名前", WARNING, "warning") in caplog.record_tuples
assert ("loggerの名前", ERROR, "error") in caplog.record_tuples
caplogを使用してテストを行います。
まとめ
今回は、pytestでloggingのログ出力をテストする方法について解説しました。
以下が本記事のまとめになります。
- おすすめ本
Pythonの勉強なら「独習Python
最後までお読みいただき、ありがとうございました!
- クソおすすめ本
海外のエンジニアがどういった思考で働いているかが理解できます。
海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。