如何让PyCharm中pytest触发的异常触发断点?
解决PyCharm中pytest触发异常断点的问题
要让pytest在测试失败时触发PyCharm的异常断点,核心是让pytest停止自动捕获异常,让PyCharm的调试器接手处理异常。这里有几个实用的设置方法:
1. 修改PyCharm的pytest运行配置
- 打开Run/Debug Configurations(可通过右上角运行按钮旁的下拉菜单进入)
- 找到你正在使用的pytest配置项,切换到Configuration标签页
- 勾选Do not catch exceptions选项
- 还可以在Additional arguments里添加
-x参数,这样第一个测试失败时就会立即停止,方便聚焦调试当前问题
2. 直接调试单个测试用例
如果只需要调试特定的测试方法或类,不用折腾全局配置:
- 在测试代码的方法/类左侧,点击虫子形状的调试图标,直接以调试模式运行该测试
- 这种方式下,PyCharm会自动让pytest放弃异常捕获,一旦测试抛出异常,立刻触发断点
3. 通过pytest配置文件全局设置
如果想让所有pytest运行都默认触发异常断点:
- 在项目根目录创建或编辑
pytest.ini文件,添加以下内容:
[pytest] addopts = --no-capture -x
--no-capture禁用pytest的输出捕获,让异常直接暴露给调试器;-x让测试在第一次失败后停止,避免后续测试干扰调试
设置完成后,用PyCharm调试模式运行pytest,测试抛出异常时就会像运行普通Python脚本一样触发断点,直接定位到异常发生的代码位置。
内容的提问来源于stack exchange,提问作者motam79
相关产品推荐
相关产品推荐

