用nosetests设置断点--pdb选项

2024-06-01 06:57:03 发布

您现在位置:Python中文网/ 问答频道 /正文

nosetests --pdb让我在错误或失败时停止,但这对于我的需要来说太晚了。在执行期间单步执行代码有助于我调试问题所在。

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

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

python -m pdb /path/to/my/nosetests testfile.py

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

使用import pdb;pdb.set_trace()似乎是个好主意,但是nosetests正在阻止我访问pdb控制台。


Tags: topath代码pymy错误键盘解决方案
3条回答

如果您有ipython,请使用:

import ipdb; ipdb.set_trace() 

*无限的敬畏:就像ipython-自动完成,着色等

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

from nose.tools import set_trace; set_trace()

不管你想在哪里闯入调试器。stdin/out重定向将为您提供帮助。我遇到的唯一奇怪的副作用是在nose运行期间调试时无法从pdb中重新启动代码(使用run)。

您可以添加

import pdb; pdb.set_trace() 

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

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

相关问题 更多 >