In django 1.5 and earlier, running python manage.py test
would, by default, run all tests in a project (including all those in django.contrib). Subsequent to version 1.6, the default behaviour is to run all the tests in the current directory.
What is the best way (v 1.6) to run all tests, either with or without the django.contrib tests?
Django 1.6 changed the default test runner to:
You can get the old behaviour back by adding to your settings.py:
As explained in the release notes:
The new runner expects a list of dotted path of modules where tests shall be discovered, so you can also run the tests from
django contrib
this way:This will not run all tests from apps in
INSTALLED_APPS
automatically though. For a more complex solution, you could write your own runner, taking from both the old and new runner.Also note that it usually shouldn't be necessary to run tests from
django.contrib
, as these are not testing your application, but rather the Django distribution. Django ships with even more tests, which are not run by either runner.