# 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.

## py.test

You will need pytest to run the test suite. It’s included with the development dependencies:

    $ pip install -r requirements.txt

Then just run the test suite:

    $ py.test

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_ENGINE```

`DATABASE_NAME```

`DATABASE_USER```

`DATABASE_PASSWORD```

`DATABASE_HOST```

`DATABASE_PORT```

  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:

> - py27-dj16-sqlite
> - py27-dj16-mysql
> - py27-dj16-pgsql
> - py27-dj17-sqlite
> - py27-dj17-mysql
> - py27-dj17-pgsql
> - py34-dj16-sqlite
> - py34-dj16-pgsql
> - py34-dj17-sqlite
> - py34-dj17-pgsql

This means that the test suite will run 10 times to test every environment supported by `django-treebeard`. This takes a long time. If you want to test only one or a few environments, please use the -e option in tox, like:

    $ tox -e py34-dj17-pgsql