PyCharm是否能在py.test测试失败时进入调试模式?

36

在使用 py.test 运行测试时,可以使用 --pdb 选项在测试失败时进入 pdb。

在 PyCharm 中运行相同的测试时是否有类似的方法可以进入调试器?


可能是在pycharm/pydev中调试pytest后处理异常的重复问题。 - Piotr Dobrogost
2个回答

22

有一个名为pytest-pycharm的py.test插件,当测试发出未捕获的异常时,它将停止PyCharm调试器。


太好了!非常感谢!你能简单说一下它是如何工作的吗?.. 只需在Python中安装,而无需对项目进行任何修改? - Mikhail
只需安装它,使得py.test将其作为插件找到并在遇到异常时使用回调函数即可。因此,除了在Python运行时中安装它之外,无需修改任何项目。 - Johan Lübcke
2
有没有办法在 PyCharm 中的测试中停止断点? - Piotr Dobrogost
当使用pyenv时,似乎这并不起作用,因为它使用shell脚本shims来包装诸如pytest之类的Python程序,这意味着PyCharm不能直接运行Python程序,因此无法启动调试器。 - davidA
对我来说不起作用,至少当我只选择“调试[mytest]”时不起作用。 - karu

0

按照以下步骤设置正确的运行配置:

  1. 选择“Run(运行)”>“Edit Configurations...(编辑配置)”
  2. 单击“+”按钮以添加新的配置。
  3. 为配置命名,并指定以下配置参数:

Script(脚本): 您的py.test可执行文件的路径(通过键入which py.test查找)

Script Parameters(脚本参数): 此参数是您的测试用例,后跟--pdb选项(例如/Users/Johan/projects/misc/testing.py --pdb

设置配置后,您可以从PyCharm内部运行测试用例。如果测试用例失败,您的PyCharm运行窗口将显示pdb提示。

enter image description here


7
也许我在问题中没有表达清楚,但我希望能找到一种在出现错误时进入PyCharm调试器的方法。不过这个回答总比没有强。 - Johan Lübcke
在PyCharm 2016.2中,我在运行窗口中看到“进入PDB”,并且我可以输入文本(以绿色回显),但似乎不是一个活动的pdb提示符。 - davidA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接