nosetests --pdb
让我在出现错误或失败时停止,但这对我的需求来说太晚了。在执行过程中单步执行代码可以帮助我调试出问题所在。
然而,nosetest是有帮助的,因为它们允许依赖相对导入的测试(即包中的测试)。
如何在测试执行前设置断点?目前我使用的是:
python -m pdb /path/to/my/nosetests testfile.py
这种解决方案是不够的。没有测试干扰pdb输出,我的键盘控制(如箭头键)坏了。
使用import pdb;pdb.set_trace()似乎是一个好主意,但是nosetest阻止了我对pdb控制台的访问。
发布于 2011-02-10 05:28:45
您可以添加
import pdb; pdb.set_trace()
要在调试器中停止的源代码中的任何位置。
确保将-s
传递给nose,这样它就不会捕获stdout
。
发布于 2011-09-21 10:26:18
比记住使用-s
更好的方法是使用Nose附带的set_trace
变体。添加
from nose.tools import set_trace; set_trace()
您想要进入调试器的任何位置。stdin/out重定向将为您处理。我遇到的唯一奇怪的副作用是不能从pdb中重新启动代码(使用run
),同时在鼻子运行期间进行调试。
https://stackoverflow.com/questions/4950637
复制相似问题