Dev*_*vin 82 python testing nose pdb
nosetests --pdb
让我停止错误或失败,但这对我的需求来说已经太迟了.在执行期间单步执行代码可帮助我调试问题所在.
但是,nosetests是有用的,因为它们允许依赖于相对导入的测试(即在包中进行测试).
如何在执行测试之前设置断点?目前我正在使用:
python -m pdb /path/to/my/nosetests testfile.py
Run Code Online (Sandbox Code Playgroud)
这种解决方案是不够的.Nosetests干扰pdb输出,我的键盘控制(例如箭头键)被破坏.
使用import pdb; pdb.set_trace()似乎是一个好主意,但是nosetests阻止了我对pdb控制台的访问.
Mat*_*ngo 134
甚至比记住使用更好的-s
是使用set_trace
Nose附带的变体.加
from nose.tools import set_trace; set_trace()
Run Code Online (Sandbox Code Playgroud)
无论你想进入调试器的哪个地方.stdin/out重定向将为您处理.我遇到的唯一奇怪的副作用是run
在鼻子运行期间调试时无法从pdb(使用)中重新启动代码.
Ned*_*der 112
你可以加
import pdb; pdb.set_trace()
Run Code Online (Sandbox Code Playgroud)
源中要在调试器中停止的任何位置.
确保你-s
转到鼻子,这样它就不会捕捉到stdout
.
如果您拥有ipython,那么可以使用以下功能:
import ipdb; ipdb.set_trace()
Run Code Online (Sandbox Code Playgroud)
*无限的超赞功能:就像ipython一样-自动补全,着色等
归档时间: |
|
查看次数: |
21046 次 |
最近记录: |