Python Unit Testing: Automatically Running the Debugger when a test fails
I think what you are looking for is nose. It works like a test runner for unittest. You can drop into the debugger on errors, with the following command: nosetests –pdb
I think what you are looking for is nose. It works like a test runner for unittest. You can drop into the debugger on errors, with the following command: nosetests –pdb
The command d is the command for the debugger used to go down the stack to a ‘newer frame’. It seems that the parsing cannot not handle this disambiguity. Try renaming the variable d. EDIT: Actually, the comments suggest much better handling than renaming.
Sending an EOF by pressing Ctrl + D should work: $ python -m pdb myscript.py > …/myscript.py(1)<module>() -> import os (Pdb) import code (Pdb) code.interact() Python 2.7.11 (default, Dec 27 2015, 01:48:39) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin Type “help”, “copyright”, “credits” or “license” for more information. (InteractiveConsole) >>> <CTRL-D> (Pdb) c … Read more
ipdb has had support for runcall, runeval and run since 0.7, earlier this year. You can use it just like pdb.runcall: In [1]: def foo(a, b): …: print a + b …: In [2]: import ipdb In [3]: ipdb.runcall(foo, 1, 2) > <ipython-input-1-2e565fd9c4a4>(2)foo() 1 def foo(a, b): —-> 2 print a + b 3 ipdb>
Late but hopefully still helpful. In pdb, make the following alias (which you can add to your .pdbrc file so it’s always available): alias ll u;;d;;l Then whenever you type ll, pdb will list from the current position. It works by going up the stack and then down the stack, which resets ‘l’ to show … Read more
For pdb, you should be able to do p dir(a).
Use the j/jump command: test.py contains: def destroy_the_universe(): raise RuntimeError(“Armageddon”) def useful_line(): print(“Kittens-r-us”) print(10) import pdb; pdb.set_trace() destroy_the_universe() useful_line() Then: C:\Temp>c:\python34\python test.py 10 > c:\temp\test.py(9)<module>() -> destroy_the_universe() (Pdb) l 4 def useful_line(): 5 print(“Kittens-r-us”) 6 7 print(10) 8 import pdb; pdb.set_trace() 9 -> destroy_the_universe() 10 useful_line() [EOF] (Pdb) j 10 > c:\temp\test.py(10)<module>() -> useful_line() (Pdb) … Read more
You are setting the breakpoint correctly. I imagine it is not stopping because the line of code you are breaking on is not called. Put the break on line 383.
Looks like from some reason you are missing the readline package. Simply install it by typing pip install readline and it should behave as expected. Remember to type it as superuser if you’re not in venv.
You can use the until command. Output of help until in pdb: unt(il) Continue execution until the line with a number greater than the current one is reached or until the current frame returns