有没有办法用PyCharm捕获unittest异常?

prg*_*lop 11 python debugging unit-testing exception pycharm

python unittest运行器处理所有异常.我想用我的调试器来捕获它们.

有没有办法让我的unittest跑步者重新提高测试异常以终止进程?我想自己处理它们.

编辑:找到解决方案.

您可以创建unittest.TestSuite并调用debug()来运行要调试的测试 - 包括使用调试器捕获异常!

使用此模式可以轻松完成:

import unittest

class DebuggableTestCase(unittest.TestCase):
    @classmethod
    def debugTestCase(cls):
        loader = unittest.defaultTestLoader
        testSuite = loader.loadTestsFromTestCase(cls)
        testSuite.debug()

class MyTestCase(DebuggableTestCase):
    def test_function_that_fails(self):
        raise Exception('test')

if __name__ == '__main__':
    MyTestCase.debugTestCase()
Run Code Online (Sandbox Code Playgroud)

dri*_*her 5

我知道这是一个旧线程,也许在提出问题时其中一些东西并不存在。但只为后人...

您可以unittest使用 py.test 作为测试运行器来运行您的测试。您将立即获得一些出色的功能。直接针对您的问题,有一些使用 py.test 进行调试的好方法,包括使用 PyCharm。

特别是为了调试任何失败,事后分析,使用 PyCharm - 你所要求的 - 你可以安装pytest-pycharm插件。

pip install pytest-pycharm
Run Code Online (Sandbox Code Playgroud)

(我在每个项目的 virtualenv 中工作,所以这对我来说没有缺点。我建议你也这样做。否则,请注意你正在全局安装它,并且这个插件将对使用这个 Python interpeter 的所有项目有效.)

也可以看看: