Project: pytest-django

A Django plugin for pytest.

Project Details

Latest version
4.7.0
Home Page
PyPI Page
https://pypi.org/project/pytest-django/

Project Popularity

PageRank
0.0017970902870667177
Number of downloads
1877089

.. image:: https://img.shields.io/pypi/v/pytest-django.svg?style=flat :alt: PyPI Version :target: https://pypi.python.org/pypi/pytest-django

.. image:: https://img.shields.io/pypi/pyversions/pytest-django.svg :alt: Supported Python versions :target: https://pypi.python.org/pypi/pytest-django

.. image:: https://github.com/pytest-dev/pytest-django/workflows/main/badge.svg :alt: Build Status :target: https://github.com/pytest-dev/pytest-django/actions

.. image:: https://img.shields.io/pypi/djversions/pytest-django.svg :alt: Supported Django versions :target: https://pypi.org/project/pytest-django/

.. image:: https://img.shields.io/codecov/c/github/pytest-dev/pytest-django.svg?style=flat :alt: Coverage :target: https://codecov.io/gh/pytest-dev/pytest-django

Welcome to pytest-django!

pytest-django allows you to test your Django project/applications with the pytest testing tool <https://pytest.org/>_.

  • Quick start / tutorial <https://pytest-django.readthedocs.io/en/latest/tutorial.html>_

  • Changelog <https://pytest-django.readthedocs.io/en/latest/changelog.html>_

  • Full documentation: https://pytest-django.readthedocs.io/en/latest/

  • Contribution docs <https://pytest-django.readthedocs.io/en/latest/contributing.html>_

  • Version compatibility:

    • Django: 3.2, 4.1, 4.2, 5.0 and latest main branch (compatible at the time of each release)
    • Python: CPython>=3.8 or PyPy 3
    • pytest: >=7.0

    For compatibility with older versions, use the pytest-django 3.. series.

  • Licence: BSD

  • Project maintainers: Andreas Pelme, Floris Bruynooghe and Daniel Hahler

  • All contributors <https://github.com/pytest-dev/pytest-django/contributors>_

  • GitHub repository: https://github.com/pytest-dev/pytest-django

  • Issue tracker <http://github.com/pytest-dev/pytest-django/issues>_

  • Python Package Index (PyPI) <https://pypi.python.org/pypi/pytest-django/>_

Install pytest-django

::

pip install pytest-django

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

Running your test suite with pytest-django allows you to tap into the features that are already present in pytest. Here are some advantages:

  • Manage test dependencies with pytest fixtures. <https://pytest.org/en/latest/how-to/fixtures.html>_
  • Less boilerplate tests: no need to import unittest, create a subclass with methods. Write tests as regular functions.
  • Database re-use: no need to re-create the test database for every test run.
  • Run tests in multiple processes for increased speed (with the pytest-xdist plugin).
  • Make use of other pytest plugins <https://pytest.org/en/latest/how-to/plugins.html>_.
  • Works with both worlds: Existing unittest-style TestCase's still work without any modifications.

See the pytest documentation <https://pytest.org/en/latest/>_ for more information on pytest itself.