🐙

pytestで特定のメッセージを含むWarningを無視する

2023/05/29に公開

結論

  • @pytest.mark.filterwarnings("ignore:{Warning文}")を関数の頭に付ける
    • {Warning文}の部分には正規表現が使える

import pytest

def test_hoge():
    ### 処理 ###
    assert result = "test"

というテストで

/usr/local/lib/python3.6/site-packages/pymysql/cursors.py:329: Warning: (1292, "Truncated incorrect INTEGER value: '100.0'")

というWaringが出る場合、

import pytest

@pytest.mark.filterwarnings("ignore:.*Truncated incorrect INTEGER value.*")
def test_hoge():
    ### 処理 ###
    assert result = "test"

とすれば良い。
.*は正規表現
※ Warningは基本的に無視せず解消したほうがいいです。なにか理由があるときだけ無視してください。

Discussion