Python がテスト コンテキストで実行されているときに、特定の警告メッセージを抑制したいと考えています。
Pythonでこれをグローバルに検出する方法はありますか?
いいえ、テスト コンテキストにいるかどうかを実際に検出することはできません。または、多くの不要な処理を行ってテスト コンテキストを実行することになります。たとえば、テストを実行するときに設定するテスト パッケージに状態変数を設定します。しかし、そのモジュール (または変数) をすべてのモジュールに含めることになり、エレガントとは言えません。グローバルは悪です。
実行コンテキストに基づいてフィルタリング出力を実装する最善の方法は、logging
モジュールを使用して、不要な警告メッセージを低レベル ( などDEBUG
) ですべて作成し、テストを実行するときにそれらを無視することです。
もう 1 つのオプションは、テストの実行時に明示的に無視するすべてのメッセージのレベルを追加することです。