pytest テストの実行中に ipdb.set_trace() を任意に実行する方法 質問する

pytest テストの実行中に ipdb.set_trace() を任意に実行する方法 質問する

私はテスト スイートに pytest を使用しています。複雑なコンポーネント間テストでバグをキャッチしながら、import ipdb; ipdb.set_trace()コードの途中に配置してデバッグできるようにしたいと考えています。

ただし、pytest は sys.stdin/sys.stdout をトラップするため、ipdb は失敗します。pytest でテスト中に ipdb を使用するにはどうすればよいですか。

障害発生後に pdb または ipdb にジャンプすることには興味がありませんが、障害が発生する前にコード内の任意の場所にブレークを配置して、そこでデバッグできるようにしたいと考えています。

ベストアンサー1

pytest はデフォルトで出力をキャプチャするため、エラーが発生します。

オプション(キャプチャ出力をオフにする)を付けて pytest を実行できます-s。例:

py.test -s my_test.py

そして次にmy_test.py

import ipdb;
ipdb.set_trace()

おすすめ記事