私はテスト スイートに 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()