Run your tests with nose and use the -x flag. That combined with the --failed flag should give you all you need. So in the top level of your project run
nosetests -x # with -v for verbose and -s to no capture stdout
Alternatively you could run with
nosetests --failed
Which will re-run only your failing tests from the test suite
Other useful flags:
nosetests --pdb-failure --pdb
drops you into a debugger at the point your test failed or errorred
nosetests --with-coverage --cover-package=<your package name> --cover-html
gives you a colorized html page showing which lines on your code have been touched by the test run
A combination of all of those usually gives me what I want.