setting breakpoints with nosetests --pdb option
Solution 1:
Even better than remembering to use -s
is to use the set_trace
variant that comes with Nose. Add
from nose.tools import set_trace; set_trace()
wherever you'd like to break in to the debugger. The stdin/out redirection will be taken care of for you. The only strange side effect I've run into is the inability to restart your code from within pdb (using run
) while debugging during a nose run.
Solution 2:
You can add
import pdb; pdb.set_trace()
anywhere in your source that you want to stop in the debugger.
Make sure you pass -s
to nose so that it does not capture stdout
.
Solution 3:
If you have ipython, for unlimited awesomeness use:
import ipdb; ipdb.set_trace()
*unlimited awesomeness: just like ipython - auto-completion, coloring etc.