Je pense que vous ne voulez pas cacher tous les avertissements, mais seulement ceux qui ne sont pas pertinents. Et dans ce cas, les avertissements de dépréciation des modules python importés.
Lire la documentation pytest sur Warnings Capture :
L'option de ligne de commande -W et l'option ini filterwarnings sont basées sur l' option -W et warnings.simplefilter de Python , veuillez donc vous référer à ces sections dans la documentation Python pour d'autres exemples et une utilisation avancée.
Ainsi, vous pouvez filtrer les avertissements avec python -W
option !
Il semble que cela pytest
supprime complètement les filtres, car il montre tous ceux DeprecationWarning
lors de l'exécution, et la documentation de Python sur les filtres d'avertissement par défaut dit clairement:
Dans les versions de version standard, le filtre d'avertissement par défaut contient les entrées suivantes (par ordre de priorité):
default::DeprecationWarning:__main__
ignore::DeprecationWarning
ignore::PendingDeprecationWarning
ignore::ImportWarning
ignore::ResourceWarning
Donc, dans votre cas, si vous voulez laisser dire à filtrer les types d'avertissement que vous souhaitez ignorer, tels que ceux-ci DeprecationWarning
, exécutez simplement la commande pytest avec l' -W
option:
$ pytest path-to-test-folder -W ignore::DeprecationWarning
EDIT : A partir du commentaire de colini , il est possible de filtrer par module. Exemple pour ignorer les avertissements d'obsolescence de tous les sqlalchemy:
ignore::DeprecationWarning:sqlalchemy.*:
Vous pouvez ensuite lister vos modules installés qui créent trop de bruit dans la sortie de pytest
À utiliser avec un fichier plutôt qu'en ligne de commande:
Vous pouvez préférer lister ces filtres dans le fichier pytest.ini:
[pytest]
filterwarnings =
ignore::DeprecationWarning