すべての警告を非表示にするのではなく、関連のない警告のみを非表示にする必要があると思います。そして、この場合、インポートされたpythonモジュールからの非推奨警告。
警告キャプチャに関するpytestドキュメントを読んでください:
-Wコマンドラインオプションとfilterwarnings iniオプションはどちらも、Python独自の-Wオプションとwarnings.simplefilterに基づいているため、他の例と高度な使用法については、Pythonドキュメントのこれらのセクションを参照してください。
したがって、Pythonの-W
オプションで警告をフィルタリングできます!
実行時にpytest
すべてのフィルターが表示されるため、フィルターは完全に削除されているようです。デフォルトの警告フィルターDeprecationWarning
に関するPythonのドキュメントでは、次のように明確に述べています。
通常のリリースビルドでは、デフォルトの警告フィルターに次のエントリ(優先順)があります。
default::DeprecationWarning:__main__
ignore::DeprecationWarning
ignore::PendingDeprecationWarning
ignore::ImportWarning
ignore::ResourceWarning
したがって、あなたの場合、それらのような無視したい警告のタイプをフィルタリングしたい場合は、オプションでDeprecationWarning
pytestコマンドを実行してください-W
:
$ pytest path-to-test-folder -W ignore::DeprecationWarning
編集:coliniのコメントから、モジュールでフィルタリングできます。すべてのsqlalchemyからの非推奨警告を無視する例:
ignore::DeprecationWarning:sqlalchemy.*:
次に、インストールされているモジュールを一覧表示して、出力にノイズが多すぎるようにすることができます pytest
コマンドラインではなくファイルで使用:
これらのフィルターをpytest.iniファイルにリストすることをお勧めします。
[pytest]
filterwarnings =
ignore::DeprecationWarning