si consiglia di avere pytest
come corridore di prova. Segue l'esempio di configurazione.
Esempio pytest.ini
di file:
[pytest]
norecursedirs=
*.egg
.git
.tox
.env
_sass
build
dist
migrations
fabfile
.tox
python_files =
test_*.py
tests.py
DJANGO_SETTINGS_MODULE=settings.dev
addopts=
--reuse-db
--nomigrations
--cov=your_app
--ignore=.tox
--ignore=fabfile
--ignore=scripts
--ignore=settings
--ignore=tmp
--cov-report=html
--cov-report=term
--cov-report=annotate
Esempio runtests.py
di file:
#!/usr/bin/env python
import os
import sys
import pytest
def main():
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings.dev")
return pytest.main()
if __name__ == '__main__':
sys.exit(main())
Esempio requirements.txt
di file:
pytest==3.0.2
pytest-django==2.9.1
pytest-cov==2.2.1
Eseguire i test:
./runtests.py
Nota: questo effetto viene ottenuto tramite le direttive reuse-db
e nomigrations
.
fonte
2017-12-13 02:27:25
Per il moderno Django (1.8 o superiore) con il kit di test predefinito - questo è il più semplice. –
Anche con keepdb, django insiste a eseguire le migrazioni ogni volta – Matt
@Matt _Se il database di prova non esiste, verrà creato alla prima esecuzione e quindi conservato per ogni esecuzione successiva di . Tutte le migrazioni non applicate verranno applicate anche al database di prova prima di eseguire la suite di test. [[Django-docs] (https://docs.djangoproject.com/en/1.11/ref/django-admin/#cmdoption-test- keepdb) – Kim