Pytest-django allows you to re-use database setups between tests for
quicker test runs. This is especially useful for large projects with many
migrations.
For example, here's a project of mine with 40+ migrations:
with --reuse-db
```
pytest --reuse-db 2.54s user 0.35s system 108% cpu 2.669 total
```
without --reuse-db
```
pytest 7.40s user 0.34s system 50% cpu 15.240 total
```
Caveat: if your model happens to change you need to manually --create-db
to ensure migrations are applied.
https://pytest-django.readthedocs.io/en/latest/database.html#reuse-db-reuse-the-testing-database-between-test-runs
You can alternatively use DJANGO_SETTINGS_MODULE, but this is overridden
by the environment variable of the same name. In order to always run it
with test settings, regardless of the environment variable use --ds.
https://pytest-django.readthedocs.io/en/latest/configuring_django.html
This is to ensure running `pytest` in project root works when using Python 3.6 (otherwise tries to run python tests in `node-gyp` node module and fails with:
```
―――――――――――――――――――――――――――――――――――――――――――― ERROR collecting node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py ――――――――――――――――――――――――――――――――――――――――――――
../venv/lib/python3.6/site-packages/_pytest/python.py:395: in _importtestmodule
mod = self.fspath.pyimport(ensuresyspath=importmode)
../venv/lib/python3.6/site-packages/py/_path/local.py:662: in pyimport
__import__(modname)
E File "/Users/ivan/Projects/Minireference/ClassroomLinksProject/classroomlinks/node_modules/node-gyp/gyp/pylib/gyp/__init__.py", line 37
E print '%s:%s:%d:%s %s' % (mode.upper(), os.path.basename(ctx[0]),
E ^
E SyntaxError: invalid syntax
```