# Running the Test Suite

`django-treebeard` includes a comprehensive test suite. It is highly recommended that you run and update the test suite when you send patches.

## pytest

You will need pytest to run the test suite:

    $ pip install pytest

Then just run the test suite:

    $ pytest

You can use all the features and plugins of pytest this way.

By default the test suite will run using a sqlite3 database in RAM, but you can change this setting environment variables:

DATABASE_USER

DATABASE_PASSWORD

DATABASE_HOST

DATABASE_USER_POSTGRES

DATABASE_PORT_POSTGRES

DATABASE_USER_MYSQL

DATABASE_PORT_MYSQL

  Sets the database settings to be used by the test suite. Useful if you want to test the same database engine/version you use in production.

## tox

`django-treebeard` uses tox to run the test suite in all the supported environments - permutations of:

> - Python 3.10 - 3.13

> - Django 5.2 and above

> - Sqlite, MySQL, PostgreSQL and MSSQL

This means that there are a lot of permutations, which takes a long time. If you want to test only one or a few environments, use the -e option in tox, like:

    $ tox -e py313-dj52-postgres