ipdb与python unittest模块

时间:2015-07-26 18:17:31

标签: python unit-testing ipdb

使用python的unittest模块运行测试时,有没有方便的方法来获取异常的ipdb调试器?

使用ipython --pdb my_script.py调试python代码很方便。 但是,当我使用unittest模块时,用

class MyTestCase(unittest.TestCase):
    def runTest(self):
        x = 0
        y = 3/x

unittest捕获异常并退出。

3 个答案:

答案 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标志。如果发生任何异常,它将调用调试器。

相关问题