Je pense que vous ne voulez pas masquer tous les avertissements, mais seulement ceux qui ne sont pas pertinents. Et dans ce cas, les avertissements de déprogrammation des modules python importés.
En lisant la documentation de pytest sur Avertissements Capture :
L'option de ligne de commande -W et l'option ini filterwarnings sont toutes deux basées sur l'algorithme Python Option -W y warnings.simplefilter Veuillez donc vous référer à ces sections dans la documentation Python pour d'autres exemples et une utilisation avancée.
Vous pouvez donc filtrer les avertissements avec la fonction de python -W
option !
Il semble que pytest
supprime complètement les filtres, car il montre tous ces DeprecationWarning
lors de l'exécution, et la documentation de Python au sujet de Filtres d'avertissement par défaut dit clairement :
Dans les versions régulières, le filtre d'avertissement par défaut possède les les entrées suivantes (par ordre de préséance) :
default::DeprecationWarning:__main__
ignore::DeprecationWarning
ignore::PendingDeprecationWarning
ignore::ImportWarning
ignore::ResourceWarning
Donc, dans votre cas, si vous voulez laisser dire de filtrer les types d'avertissement que vous voulez ignorer, tels que ceux DeprecationWarning
il suffit de lancer la commande pytest avec -W
option :
$ pytest path-to-test-folder -W ignore::DeprecationWarning
EDITAR : A partir de colini Il est possible de filtrer par module. Exemple pour ignorer les avertissements de dépréciation de tous les modules sqlalchemy :
ignore::DeprecationWarning:sqlalchemy.*:
Vous pouvez alors lister vos modules installés qui créent trop de bruit dans la sortie de pytest
Utilisation 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