无法使用pytest在pycharm中调试

问题描述 投票:27回答:3

我无法使用py.test在PyCharm中进行调试。所有测试套件在“调试模式”下运行正常,但它不会在断点上停止。

Debug Mode

我也有py.test作为默认测试运行器。

也许这不重要,但调试在我的Django服务器中正常工作。

有任何想法吗?

Configuration picture of enable_breakpoints_and_the_mode_of_pycharm_is_debug

参考文献:

pycharm-enabling-disabling-and-removing-breakpoints

Run/Debug Configuration: py.test

pycharm pytest
3个回答
71
投票

对于我的情况,我发现了问题所在:

如果在--cov中有pytest.ini,那么pycharm中的断点将无效,在删除--cov中的所有pytest.ini后,pycharm中的断点可以正常工作。

原因:

“coverage模块和pycharm的调试器使用相同的跟踪API(sys.settrace) - 它们不能一起工作。” - https://github.com/pytest-dev/pytest-cov/issues/131

参考文献:

How to debug py.test in PyCharm when coverage is enabled


7
投票

对我来说固定的是将--no-cov添加到Additional Arguments上的Run/Debug Configurations。我更新了Templates -> Python tests -> pytest,因此每个新测试都会获得此配置。 只需删除当前的调试设置即可。

enter image description here

Pycharm 2018.3.x


1
投票

TL; DR:在“构建,执行,部署” - >“Python调试器”中禁用“Gevent compatible”标志。

似乎在某些时候我在pycharm中启用了“Gevent compatible”调试器,从那以后pytest-pycharm停止工作。禁用它将使pytest-pycharm再次工作。我希望这能为你们中的一些人解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.