Skip to content

mfa/pytest_django

 
 

Repository files navigation

Build Status

pytest-django is a plugin for pytest that provides a set of useful tools for testing Django applications and projects.

Quick Start

  1. pip install pytest-django
  2. Make sure DJANGO_SETTINGS_MODULE is defined and and run tests with the py.test command.
  3. (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

Documentation

Documentation is available on Read the Docs.

Why would I use this instead of Django's manage.py test command?

Running the test suite with pytest offers some features that are not present in Djangos standard test mechanism:

  • Smarter test discovery (no need for from .foo import * in your test modules).
  • Less boilerplate: no need to import unittest, create a subclass with methods. Just write tests as regular functions.
  • Injection of test depencies with funcargs
  • No need to run all tests, it is easy to specify which tests to run.
  • Database re-use: no need to re-create the test database for every test run.
  • No hacks required to only run your apps, and not the 3rd party/contrib apps that is listed in your INSTALLED_APPS.
  • There are a lot of other nice plugins available for pytest.
  • No pain of switching: Existing unittest-style tests will still work without any modifications.

See the pytest documentation for more information on pytest.

Contributing

Read the contributing page from the documentation.

To run the project's tests:

make test

To build the project's docs:

make docs

Bugs? Feature suggestions?

Report issues and feature requests at the github issue tracker.

About

A Django plugin for py.test.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 70.1%
  • CSS 24.7%
  • Shell 5.2%