如何在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
...可踢了單元測試時...
In [4]: %run -m unittest some/path/to/brokenness.py
...其中,失敗,運行%debug
將採取我到了raise
那個測試用例失敗了。
似乎unittest模塊吞下異常(如人們所期望的)並且--failfast
標誌不會使它們咳嗽。我知道我可以實例化測試對象,然後手動調用setUp()
等。但是,這看起來溫和愚蠢和痛苦。我不想設置斷點。
我會高興地還需要在哪裏可以得到的只有失敗投進IPython的解決方案。實際上更幸福的是 –
。如果簡單地從CLI運行,並且在觸發斷言上獲得對IPython友好的調試器,將會很好。 –
你可以用'nose'在ipython中運行測試。 – pylang