Introducing django-juno-testrunner
Adding features (and a little glamour) to the Django test runner
YJ's CTO, @hugorodgerbrown, has a knack for asking the good kind of "Why can't X do Y?"questions. By the good kind, I mean the ones that challenge things others have often just slipped into accepting, even if they're non-ideal.
And, while he appears to be a very happy Django convert, he's also brought a fresh perspective to working with it, particularly when running YJ's considerable battery of tests:
"Why can't we see the traceback of a failed test immediately, without stopping the rest of the test run?"
"Why can't we see how long our tests have left to go?"
"Why isn't there a log file of all failed test output? That'd be great."
"How about a way to capture the names of all failed tests from a file, so we can easily re-run just the failures while fixing them?"
Fair points, really.
Soon, a Trello card was born (because that's how pretty much anything gets done at YJ), and I used Django's support for a pluggable test runner to introduce an updated one which does all of the above and a little bit more.
Here's what we get when we run our tests with maximum verbosity:
We quite like that, so much so that we think others might want to use it too. So, as of this morning, django-juno-testrunner is on GitHub and PyPi. It's for Django 1.6 only at the moment, but a 1.5-compatible version does exist. If there's demand for it, we'll work that into the package, too.
Feel free to use it, fork it, tweak it, whatever you like - and do let us know what you think.
Tech Lead, Django Dev