我正在使用nosetests运行一套测试(.py文件)。使用经典pdb.set_trace()导致被冻结的nosetests,不会进入调试器
import pdb; pdb.set_trace()
nosetests运行只是永远不会完成。它恰好挂在断点已设置的位置,但从不落入pdb调试器。
任何想法,为什么会这样?我试着将断点移动到许多不同的位置(其他测试函数,其他文件)都无济于事。
我正在使用nosetests运行一套测试(.py文件)。使用经典pdb.set_trace()导致被冻结的nosetests,不会进入调试器
import pdb; pdb.set_trace()
nosetests运行只是永远不会完成。它恰好挂在断点已设置的位置,但从不落入pdb调试器。
任何想法,为什么会这样?我试着将断点移动到许多不同的位置(其他测试函数,其他文件)都无济于事。
与-s
/--nocapture
选项运行的鼻子,你就可以看到PDB提示并通常与调试器进行交互。
如果使用,这意味着该命令行: -
python manage.py test -s [other-opts-and-args]
在我的情况旗旗-s/- nocapture,还是没有解决问题,编译器拖放到PDB。
另一个可以研究的原因是,如果您使用数据库(如MySQL)作为测试的一部分,那么它不会被另一个同时进程锁定。就我而言,我已经启动了一个python shell来通过SQL Alchemy查询MySQL数据库,并且锁定了这些表。结果,我的鼻子测试挂了 - 没有运行/退出。
我杀了它被锁定了表蟒蛇流程和鼻子就是备份嗅
> $ PS auxww | grep python | awk'{print $ 2}'| sudo xargs kill -9
果然!谢谢迈克!没有意识到没有选项会让它只是吞下一切 – Bodhi
如果你有setup.cfg,在[nosetests]下添加一行'nocapture = 1' –