Last modified: Mar 25, 2025 By Alexander Williams

Install pytest-django in Python Step by Step

Testing is a key part of Django development. pytest-django makes it easier. This guide will show you how to install it.

Prerequisites

Before installing pytest-django, ensure you have:

- Python 3.6 or higher installed.

- A Django project set up.

- Basic knowledge of Python and Django.

If you get a ModuleNotFoundError, check our guide on solving module errors.

Step 1: Create a Virtual Environment

Always use a virtual environment for Python projects. It keeps dependencies isolated.


python -m venv myenv

Activate the environment:


# On Windows
myenv\Scripts\activate

# On macOS/Linux
source myenv/bin/activate

Step 2: Install Django

If you haven't installed Django yet, do it now:


pip install django

Step 3: Install pytest and pytest-django

Now install the testing tools:


pip install pytest pytest-django

This installs both pytest and the Django plugin.

Step 4: Configure pytest for Django

Create a pytest.ini file in your project root:

 
# pytest.ini
[pytest]
DJANGO_SETTINGS_MODULE = myproject.settings
python_files = tests.py test_*.py *_tests.py

Replace myproject.settings with your settings module path.

Step 5: Write a Simple Test

Create a test file to verify setup:

 
# test_example.py
def test_django_db_setup(django_db_setup):
    assert True

This basic test checks if the database setup works.

Step 6: Run Your Tests

Execute tests with this command:


pytest

You should see output like:


============================= test session starts ==============================
collected 1 item

test_example.py .                                                        [100%]

============================== 1 passed in 0.12s ===============================

Common Issues and Solutions

If tests fail, check these:

- Verify DJANGO_SETTINGS_MODULE in pytest.ini is correct.

- Ensure Django is properly installed in your virtual environment.

- Check for database connection issues.

For module errors, see our ModuleNotFoundError guide.

Advanced Configuration

You can customize pytest-django further:

 
# Add to pytest.ini
addopts = --reuse-db

This option reuses the test database between runs for speed.

Conclusion

You've now set up pytest-django for your Django project. This powerful tool simplifies testing.

Remember to:

- Keep your virtual environment active.

- Write clear, isolated tests.

- Check the troubleshooting guide if issues arise.

Happy testing with pytest-django!