在pycharm / pydev中调试pytest post mortem异常

时间:2012-12-29 21:24:50

标签: python unit-testing debugging pycharm pytest

我想在不预先配置断点的情况下将PyCharm的内置Pytest运行程序与调试器一起使用。

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

我知道使用断点有效,但我不想再进行两次测试。

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

Is there a way to catch unittest exceptions with PyCharm?

1 个答案:

答案 0 :(得分:9)

您使用的是pytest-pycharm插件吗?看起来它适合我。创建virtualenv,pip install pytest pytest-pycharm,在PyCharm Edit configuration -> Python Interpreter使用此virtualenv,然后使用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 runner设为 py.test 。然后Run > Debug 'py.test in test_me.py'