次のコードを含むtest.pyというファイルがあります。
import pytest
@pytest.mark.webtest
def test_http_request():
pass
class TestClass:
def test_method(self):
pass
pytest -s test.pyは成功しましたが、次の警告が表示されました:
pytest -s test.py
=============================== test session starts ============================
platform linux -- Python 3.7.3, pytest-5.2.4, py-1.8.0, pluggy-0.13.1
rootdir: /home/user
collected 2 items
test.py ..
=============================== warnings summary ===============================
anaconda3/lib/python3.7/site-packages/_pytest/mark/structures.py:325
~/anaconda3/lib/python3.7/site-packages/_pytest/mark/structures.py:325:
PytestUnknownMarkWarning: Unknown pytest.mark.webtest - is this a typo? You can register
custom marks to avoid this warning - for details, see https://docs.pytest.org/en/latest/mark.html
PytestUnknownMarkWarning,
-- Docs: https://docs.pytest.org/en/latest/warnings.html
=============================== 2 passed, 1 warnings in 0.03s ===================
環境:Python 3.7.3、pytest 5.2.4、anaconda3
警告メッセージを取り除く最善の方法は何ですか?
@gold_cyの答えは機能します。 pytest.iniに登録する必要のあるカスタムマーカーが多すぎる場合、別の方法はpytest.iniで次の構成を使用することです。
[pytest]
filterwarnings =
ignore::UserWarning
または、一般的には、以下を使用します。
[pytest]
filterwarnings =
error
ignore::UserWarning
上記の構成では、すべてのユーザー警告は無視されますが、他のすべての警告はエラーに変換されます。詳細は Warnings Capture を参照してください
test.py(2つのカスタムマーカーで更新)
import pytest
@pytest.mark.webtest
def test_http_request():
print("webtest::test_http_request() called")
class TestClass:
@pytest.mark.test1
def test_method(self):
print("test1::test_method() called")
次のコマンドを使用して、目的のテストを実行します。
pytest -s test.py -m webtest
pytest -s test.py -m test1