The correct usage of Django (>= 1.4) test runner is as follows:
import django, sys
from django.conf import settings
settings.configure(DEBUG=True,
DATABASES={
'default': {
'ENGINE': 'django.db.backends.sqlite3',
}
},
ROOT_URLCONF='myapp.urls',
INSTALLED_APPS=('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.admin',
'myapp',))
try:
# Django < 1.8
from django.test.simple import DjangoTestSuiteRunner
test_runner = DjangoTestSuiteRunner(verbosity=1)
except ImportError:
# Django >= 1.8
django.setup()
from django.test.runner import DiscoverRunner
test_runner = DiscoverRunner(verbosity=1)
failures = test_runner.run_tests(['myapp'])
if failures:
sys.exit(failures)
DjangoTestSuiteRunner and DiscoverRunner have mostly compatible interfaces.
For more information you should consult the “Defining a Test Runner” docs:
- DjangoTestSuiteRunner (Django >=1.4, <1.8)
- DiscoverRunner (Django >=1.8)