我正在使用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' –