This package is most useful when installed with:
- Django
- nosetests
Django 1.2 switches to a class-based test runner. To use django-nose
with Django 1.2, change your TEST_RUNNER
from django_nose.run_tests
to
django_nose.NoseTestSuiteRunner
.
django_nose.run_tests
will continue to work in Django 1.2, but will raise a
warning. In Django 1.3 it will stop working.
If you were using django_nose.run_gis_tests
, you should also switch to
django_nose.NoseTestSuiteRunner
and use one of the spatial backends in
your DATABASES
settings.
You can get django-nose from pypi with:
pip install django-nose
The development version can be installed with:
pip install -e git://github.com/jbalogh/django-nose.git#egg=django-nose
Since django-nose extends Django's built-in test command, you should add it to
your INSTALLED_APPS
in settings.py
:
INSTALLED_APPS = ( ... 'django_nose', ... )
Then set TEST_RUNNER
in settings.py
:
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
See django help test
for all the options nose provides, and look to the nose
docs for more help with nose.
To always set the same command line options you can use a nose.cfg or setup.cfg (as usual) or you can specify them in settings.py like this:
To always set the same command line options you can use a nose.cfg or setup.cfg (as usual) or you can specify them in settings.py like this:
NOSE_ARGS = ['--failed', '--stop']
If you need to make custom plugins, you can define each plugin class somewhere within your app and load them from settings.py like this:
NOSE_PLUGINS = [ 'yourapp.tests.plugins.SystematicDysfunctioner', # ... ]
Just like middleware or anything else, each string must be a dot separated, importable path to an actual class. Each plugin class will be instantiated and added to the Nose test runner.
South installs its own test command that turns off migrations during
testing. Make sure that django_nose
comes after south
in
INSTALLED_APPS
so that django_nose's test command is used.