2017-09-21 13 views
0

多くの警告を生成する可能性のあるPythonテストがあります。テストが終了したら、警告があれば例外を発生させたい。Python警告を待ち、例外を発生させます

リモートビルドボットを使用しているため、一度にすべての警告を表示したいので、テストを最後まで実行してからraiseすることが重要です。

どうすればよいですか?

+0

警告モジュールを使用していますか? https://docs.python.org/3.6/library/warnings.html?highlight=warnings#module-warnings – WombatPM

+0

はい、見つけたのはそれほど簡単ではありません。 –

答えて

0

私は昨日尋ねましたが、後で答えを見つけました。 このテクニックは興味深いものです。私はそれを共有したいと思います。

モジュールがwarningsモジュールで警告を作成するとき、モジュールは警告を保持する特別な変数にこれらの警告を格納します。だから私の場合、パーサーモジュールは警告を出します。私は単にそれがそのいつもの仕事をしてみましょう、とテストの終わりに来る:

if hasattr(parser, "__warningregistry__"): 
    raise RuntimeError("There are errors, see above.") 

この方法では、私は、どのような方法で私のパーサを変更する必要がありますが、実行の最後にはありませんI例外が発生し、すべての警告が表示されます。その後、すべてのケースを修正し、ビルドボットの別の実行を開始することができます。

関連する問題