10

我想将 PyCharm 的内置 Pytest 运行器与调试器一起使用,而无需预先配置断点。

问题是我的测试中的异常被 Pytest 捕获,因此 PyCharm 的事后调试器无法处理异常。

我知道使用断点是可行的,但我不想运行我的测试两次。

在 Unittest 中找到了一种方法,我想知道 Pytest 中是否存在类似的东西。

有没有办法用 PyCharm 捕获单元测试异常?

4

1 回答 1

13

你在使用pytest-pycharm插件吗?看起来它对我有用。创建 virtualenv,pip install pytest pytest-pycharm在 PyCharm 中使用这个 virtualenv,Edit configuration -> Python Interpreter然后使用Debug ...示例运行:

import pytest

def test_me():
    assert None

if __name__ == '__main__':
    pytest.main(args=[__file__])

PyCharm 调试器停在assert None点,与(<class '_pytest.assertion.reinterpret.AssertionError'>, AssertionError(u'assert None',), None)

编辑

设置 Preferences > Tools > Python Integration Tools > Default test runnerpy.test。然后Run > Debug 'py.test in test_me.py'

于 2014-09-03T10:31:47.597 回答