nosetests --pdb
让我在错误或失败时停止,但这对于我的需要来说太晚了。在执行期间单步执行代码有助于我调试问题所在。
然而,nosetest是有帮助的,因为它们允许依赖于相对导入的测试(即包中的测试)。
如何在执行测试之前设置断点? 目前我正在使用:
python -m pdb /path/to/my/nosetests testfile.py
这个解决方案是不够的。鼻子测试干扰pdb输出,我的键盘控制(如箭头键)坏了。
使用import pdb;pdb.set_trace()似乎是个好主意,但是nosetests正在阻止我访问pdb控制台。
如果您有ipython,请使用:
*无限的敬畏:就像ipython-自动完成,着色等
甚至比记住使用
-s
更好的方法是使用鼻子附带的set_trace
变体。添加不管你想在哪里闯入调试器。stdin/out重定向将为您提供帮助。我遇到的唯一奇怪的副作用是在nose运行期间调试时无法从pdb中重新启动代码(使用
run
)。您可以添加
源代码中要在调试器中停止的任何位置。
确保将
-s
传递给nose,这样它就不会捕获stdout
。相关问题 更多 >
编程相关推荐