我不能调试在PyCharm使用py.test.所有测试套件在"调试模式"下运行正常,但它不会在断点上停止.
我也有py.test作为默认测试运行器.
也许这不重要,但调试在我的Django服务器中正常工作.
有任何想法吗?
enable_breakpoints_and_the_mode_of_pycharm_is_ debug的图片
参考文献:
Sim*_*Jie 76
对于我的情况,我发现了问题所在:
如果--cov
在pytest.ini
,那么在pycharm断点将无法正常工作,删除所有之后--cov
的pytest.ini
,在pycharm断点可以工作.
原因:
"coverage模块和pycharm的调试器使用相同的跟踪API(sys.settrace) - 它们不能一起工作." - https://github.com/pytest-dev/pytest-cov/issues/131
参考文献:
如何在启用coverage时在PyCharm中调试py.test
mrb*_*tle 13
这里或其他地方提到的解决方案都不适合我。
我在不同的文件夹中有同一项目的多个副本。一些副本正常,其他副本则表现出以下行为:
调试器将忽略测试中的任何断点(无论这些断点是否作为单个函数、类、模块、批处理运行)
这些测试调用的实际代码中设置的断点被击中
什么对我有用(4 个损坏的存储库并且还在增加):
__pycache__
从不可调试的测试模块所在的目录开始删除项目中文件夹的内容。首先删除.pyc
不可调试模块名称的文件。如果这没有帮助,请识别测试中使用的任何自己的导入,找到并删除它们的__pycache__
/ 。.pyc
(注意:使用文件资源管理器等文件浏览工具,因为 Pycharm 不会在项目视图中显示这些目录。)
如果您仍然不走运或只是懒惰(像我一样),请擦除__pycache__
存储库中的所有文件夹。您可以通过命令行/终端执行此操作,只需导航到存储库文件夹,然后:
find . -name __pycache__ -type d -exec rm -rf {} \;
[linux、mac](请参阅如何删除具有特定名称的文件夹)FOR /d /r . %d IN ("__pycache__") DO @IF EXIST "%d" rd /s /q "%d"
[win](请参阅批量命令删除具有特定名称的所有子文件夹)编辑:根据最近的发现,使描述更加详细,添加了快速擦除提示。后来注意到 @mcsj120 已经在 Antonin 的帖子中建议了这一点,所以向他致敬!
对我来说固定的是--no-cov
在Additional Arguments
上添加Run/Debug Configurations
。我更新了Templates -> Python tests -> pytest
,因此每个新测试都会获得此配置。
只需删除您当前的调试设置即可。
Pycharm 2018.3.x
TL;DR:在“构建、执行、部署”->“Python 调试器”中禁用“Gevent 兼容”标志。
似乎在某些时候我在 pycharm 中启用了“Gevent 兼容”调试器,从那时起 pytest-pycharm 停止工作。禁用它将使 pytest-pycharm 再次工作。我希望这能解决你们中的一些人的问题。
我知道您说得对,但对我来说,实际上设置了默认测试运行程序来pytest
解决问题。在 PyCharm 中:Settings
-> Python Integrated Tools
-> Testing section
-> Default test runner
->pytest
从下拉菜单中选择 -> 应用。它立即起作用。
归档时间: |
|
查看次数: |
10275 次 |
最近记录: |