When I run tests with ./manage.py test
, whatever I send to the standard output through print
doesn't show. When tests fail, I see an "stdout" block per failed test, so I guess Django traps it (but doesn't show it when tests pass).
Checked TEST_RUNNER
in settings.py
, it's using a project-specific runner that calls out to Nose. Nose has the -s
option to stop it from capturing stdout
, but if I run:
./manage.py test -s
manage.py
captures it first and throws a "no such option" error. The help for manage.py
doesn't mention this, but I found that if I run:
./manage.py test -- -s
it ignores the -s
and lets me capture it on the custom runner's side, passing it to Nose without a problem.