首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用nosetests --pdb选项设置断点

使用nosetests --pdb选项设置断点
EN

Stack Overflow用户
提问于 2011-02-10 05:24:47
回答 2查看 24.1K关注 0票数 90

nosetests --pdb让我在出现错误或失败时停止,但这对我的需求来说太晚了。在执行过程中单步执行代码可以帮助我调试出问题所在。

然而,nosetest是有帮助的,因为它们允许依赖相对导入的测试(即包中的测试)。

如何在测试执行前设置断点?目前我使用的是:

代码语言:javascript
复制
python -m pdb /path/to/my/nosetests testfile.py

这种解决方案是不够的。没有测试干扰pdb输出,我的键盘控制(如箭头键)坏了。

使用import pdb;pdb.set_trace()似乎是一个好主意,但是nosetest阻止了我对pdb控制台的访问。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-10 05:28:45

您可以添加

代码语言:javascript
复制
import pdb; pdb.set_trace() 

要在调试器中停止的源代码中的任何位置。

确保将-s传递给nose,这样它就不会捕获stdout

票数 122
EN

Stack Overflow用户

发布于 2011-09-21 10:26:18

比记住使用-s更好的方法是使用Nose附带的set_trace变体。添加

代码语言:javascript
复制
from nose.tools import set_trace; set_trace()

您想要进入调试器的任何位置。stdin/out重定向将为您处理。我遇到的唯一奇怪的副作用是不能从pdb中重新启动代码(使用run),同时在鼻子运行期间进行调试。

票数 145
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4950637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档