python - setup - py.testロギング制御




pytest sv (3)

Holger氏によると、 pytest-capturelog使うことができます:

def test_foo(caplog):
    caplog.setLevel(logging.INFO)
    pass

pytest-capturelogを使用しない場合は、ログ出力設定でstdout StreamHandlerを使用することができます。したがって、pytestはログ出力を取得します。 次にbasicConfigの例を示します

logging.basicConfig(level=logging.DEBUG, stream=sys.stdout)

https://code.i-harness.com

私たちは最近Pythonテストのためにpy.testに切り替えました(これは素晴らしいbtwです)。 しかし、私はどのようにログ出力(つまり、組み込みのPythonのロギングモジュール)を制御するかを把握しようとしています。 私たちはpytest-capturelogをインストールしました。これは期待どおりに動作し、ログを見たいときに--nologcaptureオプションを渡すことができます。

しかし、どのようにロギングレベル(例えばinfo、debugなど)を制御し、ロギングをフィルタリングするか(特定のモジュールにのみ関心がある場合) これを達成するためにpy.testのための既存のプラグインはありますか?または私たち自身をロールする必要がありますか?

ありがとう、ジョニー


pytest-capturelogプラグインをインストールして使用すると、ほとんどのpytest / loggingのニーズを満たすことができます。 欠けているものがあれば、それを比較的簡単に実装できるはずです。


少し遅れて投稿しましたが、単純なドロップインロギングキャプチャソリューションのpytest-loggingをお勧めします。 pip install pytest-loggingと、(画面に表示される)ログの冗長性を制御することができます。

$ py.test -s -v tests/your_test.py
$ py.test -s -vv tests/your_test.py
$ py.test -s -vvvv tests/your_test.py

etc ... NB - -sフラグは重要であり、 py.testはすべてのsys.stderr情報を除外しsys.stderr





py.test