使用python的unittest模块运行测试时,有没有方便的方法来获取异常的ipdb调试器?
使用ipython --pdb my_script.py
调试python代码很方便。
但是,当我使用unittest模块时,用
class MyTestCase(unittest.TestCase):
def runTest(self):
x = 0
y = 3/x
unittest捕获异常并退出。
答案 0 :(得分:1)
我发现首先运行测试并查看是否发生任何错误很有帮助。这有助于全面了解错误。例如,有多个测试失败,应该首先查看哪个。
在分析之后,这是我测试/调试周期的方法。 在你的测试中:
def test_foo_is_bar(self):
import ipdb
ipdb.set_trace()
self.assertEqual('foo', 'bar')
现在运行测试:
nosetests -s tests/test_example.py
-s
标志将帮助您进入输入模式,而不是从鼻子中获取异常。
旁注:我在IntelliJ(PyCharm)设置中设置了粘贴import ipdb as pdb; pdb.set_trace()
的快捷方式,这样我就可以在代码中的任意位置插入这一行。
答案 1 :(得分:0)
nose现在有一个ipdb插件。您可以通过以下方式安装它:
pip install ipdbplugin
然后通过
测试程序nosetests --ipdb <test_file>
答案 2 :(得分:-1)
你可以在ipython中设置%pdb标志。如果发生任何异常,它将调用调试器。