Myślę, że nie chcesz ukrywać wszystkich ostrzeżeń, ale tylko te, które nie są istotne. W tym przypadku ostrzeżenia o dezaktualizacji z zaimportowanych modułów Pythona.
Po przeczytaniu o pytest dokumentacji dotyczącej programu Warnings Capture :
Zarówno opcja wiersza poleceń -W, jak i opcja filterwarnings ini są oparte na własnej opcji -W Pythona i warnings.simplefilter , więc zapoznaj się z tymi sekcjami w dokumentacji Pythona, aby uzyskać inne przykłady i zaawansowane zastosowania.
Możesz więc filtrować ostrzeżenia za pomocą -W
opcji Pythona !
Wygląda na to, że pytest
całkowicie usuwa filtry, ponieważ pokazuje je wszystkie DeprecationWarning
podczas działania, a dokumentacja Pythona dotycząca domyślnych filtrów ostrzegawczych wyraźnie mówi:
W kompilacjach zwykłych wydań domyślny filtr ostrzeżeń zawiera następujące wpisy (w kolejności pierwszeństwa):
default::DeprecationWarning:__main__
ignore::DeprecationWarning
ignore::PendingDeprecationWarning
ignore::ImportWarning
ignore::ResourceWarning
Więc w twoim przypadku, jeśli chcesz, powiedzmy, filtrować typy ostrzeżeń, które chcesz zignorować, takie jak te DeprecationWarning
, po prostu uruchom polecenie pytest z -W
opcją:
$ pytest path-to-test-folder -W ignore::DeprecationWarning
EDYCJA : Z komentarza coliniego można filtrować według modułu. Przykład ignorowania ostrzeżeń o wycofaniu ze wszystkich sqlalchemy:
ignore::DeprecationWarning:sqlalchemy.*:
Następnie możesz wyświetlić listę zainstalowanych modułów, które generują zbyt dużo szumu na wyjściu pytest
Użyj z plikiem zamiast w wierszu poleceń:
Możesz preferować listę tych filtrów w pliku pytest.ini:
[pytest]
filterwarnings =
ignore::DeprecationWarning