Welcome to pytest-django’s documentation!¶
pytest-django is a plugin for py.test that provides a set of useful tools for testing Django applications and projects.
- Getting started with pytest and pytest-django
- Configuring Django settings
- Managing the Python path
- Usage and invocations
- Database creation/re-use
- Django helpers
- FAQ
- I see an error saying “could not import myproject.settings”
- How can I make sure that all my tests run with a specific locale?
- My tests are not being found. Why not?
- How do South and pytest-django play together?
- Does pytest-django work with the pytest-xdist plugin?
- How/where can I get help with pytest/pytest-django?
- Contributing to pytest-django
- Changelog
Why would I use this instead of Django’s manage.py test command?¶
Running the test suite with py.test offers some features that are not present in Django’s standard test mechanism:
- Less boilerplate: no need to import unittest, create a subclass with methods. Just write tests as regular functions.
- Manage test dependencies with fixtures
- Database re-use: no need to re-create the test database for every test run.
- Run tests in multiple processes for increased speed
- There are a lot of other nice plugins available for pytest.
- Easy switching: Existing unittest-style tests will still work without any modifications.
See the py.test documentation for more information on py.test.
Quick Start¶
pip install pytest-django
- Make sure
DJANGO_SETTINGS_MODULE
is defined and and run tests with thepy.test
command. - (Optionally) If you put your tests under a tests directory (the standard Django application layout), and your files are not named
test_FOO.py
, see the FAQ My tests are not being found. Why not?.
Bugs? Feature suggestions?¶
Report issues and feature requests at the github issue tracker.