J'ai un fichier appelé test.py avec le code suivant:
import pytest
@pytest.mark.webtest
def test_http_request():
pass
class TestClass:
def test_method(self):
pass
pytest -s test.py a réussi mais a donné les avertissements suivants:
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 ===================
Environnement: Python 3.7.3, pytest 5.2.4, anaconda3
Quelle est la meilleure façon de se débarrasser du message d'avertissement?
La réponse de @ gold_cy fonctionne. Si vous avez trop de marqueurs personnalisés à enregistrer dans pytest.ini, une autre méthode consiste à utiliser la configuration suivante dans pytest.ini:
[pytest]
filterwarnings =
ignore::UserWarning
ou en général, utilisez ce qui suit:
[pytest]
filterwarnings =
error
ignore::UserWarning
la configuration ci-dessus ignorera tous les avertissements utilisateur, mais transformera tous les autres avertissements en erreurs. Voir plus à Warnings Capture
test.py (mis à jour avec deux marqueurs personnalisés)
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")
Utilisez les commandes suivantes pour exécuter les tests souhaités:
pytest -s test.py -m webtest
pytest -s test.py -m test1