nosetests --pdb
让我在错误或失败时停下来,但这对我的需要来说太晚了。在执行期间单步执行代码有助于我调试问题所在。
但是,nosetests 很有帮助,因为它们允许依赖于相对导入的测试(即包中的测试)。
如何在测试执行前设置断点? 目前我正在使用:
python -m pdb /path/to/my/nosetests testfile.py
这个解决方案是不够的。 Nosetests 会干扰 pdb 输出,并且我的键盘控件(例如箭头键)已损坏。
使用导入 pdb; pdb.set_trace() 似乎是个好主意,但是 nosetests 阻止了我对 pdb 控制台的访问。
最佳答案
比记住使用 -s
更好的是使用 Nose 附带的 set_trace
变体。添加
from nose.tools import set_trace; set_trace()
无论您想在哪里闯入调试器。标准输入/输出重定向将为您处理。我遇到的唯一奇怪的副作用是在 Nose 运行期间调试时无法从 pdb 中重新启动代码(使用 run
)。
关于python - 使用 nosetests --pdb 选项设置断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4950637/