web-dev-qa-db-ja.com

py.testで警告を表示する方法

コードで py.test を実行したところ、次の出力が得られました。

================== 6 passed, 2 pytest-warnings in 40.79 seconds =======================

しかし、py.testが何について警告したいのかわかりません。コンソールへの警告出力をオンにするにはどうすればよいですか?

py.test --helpは私に--strictフラグを提供します:

--strict厳密モードでpytestを実行すると、警告がエラーになります。

ただし、テストを失敗させるのではなく、出力を確認したいだけです。

pytest.orgこの質問 を確認しましたが、Pythonでの警告のアサートのみに関係しており、コマンドラインで生成された警告は表示されません。

22
Sebastian Wozny

この場合、pytest-warningsは、pytestおよび/またはそのプラグインに対して生成された警告です。これらの警告は、コードに対して生成されたものではありません。それらをレポートにリストするには、オプション-r wを使用する必要があります。 py.test --helpの一部は次のとおりです。

-r chars              show extra test summary info as specified by chars (f)ailed,
                      (E)error, (s)skipped, (x)failed, (X)passed
                      (w)pytest-warnings (a)all.

これにより、レポート(レコードの上部)に警告を表示できるようになり、非推奨の引数(私の場合は以下)を使用するpytestプラグインが一覧表示されます。

...
================================ pytest-warning summary ================================ 
WI1 /Projects/.tox/py27/lib/python2.7/site-packages/pytest_timeout.py:68 'pytest_runtest_protocol' hook uses deprecated __multicall__ argument
WI1 /Projects/.tox/py27/lib/python2.7/site-packages/pytest_capturelog.py:171 'pytest_runtest_makereport' hook uses deprecated __multicall__ argument
...
25
sashk