[解決済み] pytestテスト内のロギング
2022-04-26 17:28:05
質問
私は、いくつかの状態変数を調べるために、テスト関数内にいくつかのロギング文を置きたいと思います。
次のようなコードがあります。
import pytest,os
import logging
logging.basicConfig(level=logging.DEBUG)
mylogger = logging.getLogger()
#############################################################################
def setup_module(module):
''' Setup for the entire module '''
mylogger.info('Inside Setup')
# Do the actual setup stuff here
pass
def setup_function(func):
''' Setup for test functions '''
if func == test_one:
mylogger.info(' Hurray !!')
def test_one():
''' Test One '''
mylogger.info('Inside Test 1')
#assert 0 == 1
pass
def test_two():
''' Test Two '''
mylogger.info('Inside Test 2')
pass
if __name__ == '__main__':
mylogger.info(' About to start the tests ')
pytest.main(args=[os.path.abspath(__file__)])
mylogger.info(' Done executing the tests ')
次のような出力が得られます。
[bmaryada-mbp:/Users/bmaryada/dev/platform/main/proto/tests/tpch $]python minitest.py
INFO:root: About to start the tests
======================================================== test session starts =========================================================
platform darwin -- Python 2.6.2 -- pytest-2.0.0
collected 2 items
minitest.py ..
====================================================== 2 passed in 0.01 seconds ======================================================
INFO:root: Done executing the tests
からのロギングメッセージだけが
'__name__ == __main__'
ブロックはコンソールに転送されます。
を強制する方法はありますか?
pytest
は、テストメソッドからもコンソールにログを出力するのでしょうか?
解決方法は?
私の場合、以下のような出力が得られました。[snip -> 例が不正確でした]。
編集:どうやら
-s
オプションを指定すると、標準出力をキャプチャしないようになります。ここでは(py.testがインストールされていない)、以下のオプションで十分でした。
python pytest.py -s pyt.py
.
あなたのコードに必要なのは
-s
で
args
から
main
:
pytest.main(args=['-s', os.path.abspath(__file__)])
については、py.testのドキュメントを参照してください。 出力のキャプチャ .
関連
-
python call matlab メソッドの詳細
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み] pytestの実行中に作成された通常の印刷出力を見るにはどうすればよいですか?
-
[解決済み] pytestで例外が発生したことを適切にアサートするには?
-
[解決済み] pytestでは、conftest.pyのファイルはどのように使用するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
pythonを使ったオフィス自動化コード例
-
PythonはWordの読み書きの変更操作を実装している
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない
-
[解決済み] pytestの実行中に作成された通常の印刷出力を見るにはどうすればよいですか?