IPython内で単一のPython unittestを実行し、アサーションエラーのサイトを調査するのに%debug
を使用するにはどうすればよいですか?利用可能%debugを使用してPython unittestの失敗を調べるにはどうすればよいですか?
具体的には、私はこの魔法をしたい...
$ ipython
In [1]: def broken():
...: DOESNOTEXIST
...:
In [2]: broken()
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-2-38dbcef999e4> in <module>()
----> 1 broken()
<ipython-input-1-42074db4a06b> in broken()
1 def broken():
----> 2 DOESNOTEXIST
3
NameError: name 'DOESNOTEXIST' is not defined
In [3]: %debug
> <ipython-input-1-42074db4a06b>(2)broken()
1 def broken():
----> 2 DOESNOTEXIST
3
ipdb> # Rock on
...、失敗した場合に、%debug
を実行してもかかるだろうunittestの...
In [4]: %run -m unittest some/path/to/brokenness.py
を...キックオフ私はraise
にいくつかのテストケースに失敗しました。
unittestモジュールが例外を呑み込み、--failfast
フラグがそれらを咳止めしないと考えられます。私は、テストオブジェクトをインスタンス化してからsetUp()
などを手動で呼び出すことができます。しかし、それはやや愚かで痛みがあるようです。私はブレークポイントを設定したくありません。
私は喜んでも、私は唯一の失敗にIPythonに落とし込む得ることができます解決策を取ると思います。そのため、あなたは別々のファイルを作成せずにセッション内のテストを実行するオプションがあります。 –
もっと嬉しいです。 CLIから簡単に実行して、トリップしたアサーションでIPythonにやさしいデバッガを取得するといいでしょう。 –
ipythonで 'nose'を使ってテストを実行できます。 – pylang