py.test を使用する場合、Python デバッガーでデバッグできますか? 質問する

py.test を使用する場合、Python デバッガーでデバッグできますか? 質問する

私は python プログラムの単体テストに py.test を使用しています。通常の方法 (つまり、コード内の pdb.set_trace()) でテスト コードを Python デバッガーでデバッグしたいのですが、うまくいきません。

コードに pdb.set_trace() を入れても機能しません (IOError: reading from stdin while output is captured が発生します)。また、オプション --pdb を指定して py.test を実行してみましたが、アサーションの前に何が起こるかを調べたい場合はうまくいかないようです。アサーションが失敗すると中断し、その行から先に進むとプログラムが終了することになります。

デバッグを取得する方法をご存知の方はいらっしゃいますか、それともデバッグと py.test は一緒に使用できないのでしょうか?

ベストアンサー1

それは本当に簡単です:assert 0コード内でデバッグを開始する場所を指定して、次のようにテストを実行します:

py.test --pdb 

終わり :)

あるいは、pytest-2.0.1以上を使用している場合は、pytest.set_trace()テストコードのどこにでも配置できるヘルパーもあります。以下はドキュメントpdb デバッガーのコマンドラインに送信する前に、内部的にキャプチャを無効にするように注意します。

おすすめ記事