Django 1.6 changed the default test runner to:
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
You can get the old behaviour back by adding to your settings.py:
TEST_RUNNER = 'django.test.simple.DjangoTestSuiteRunner'
As explained in the release notes:
The previous runner (django.test.simple.DjangoTestSuiteRunner) found tests only in the models.py and tests.py modules of a Python package in INSTALLED_APPS.
The new runner (django.test.runner.DiscoverRunner) uses the test discovery features built into unittest2 (the version of unittest in the Python 2.7+ standard library, and bundled with Django). With test discovery, tests can be located in any module whose name matches the pattern test*.py.
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:
python manage.py test myproject django.contrib path.to.someotherapp
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.