maxclax
@maxclax

Как правильно тестировать django сплинтером?

Использую Django 1.8 и selenium.

Процесc работы таков:
- Написаны BDD сценарии (pytest-bdd);
- написаны степы для тестов (pytest-splinter)
- файл settings имеет конфигурацию DB
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },
}


Запускаю тесты:
1 запускаю сам сервер (runserver)
2 запускаю сами тесты (py.test)

В результате вот что получаю: сервер запущен на БД с файла settings. Все фикстуры и стенд БД на отдельной БД, а тесты пытаются пройти на БД с запущенного сервера. Что делаю не так? На Django 1.7 такого не было. Но с выходом 1.8 стало разделять БД.

Даже если я укажу в настройках ДБ для тестов (djbook.ru/rel1.8/topics/testing/overview.html) в результате то-же самое из за того, что сервер подымает на БД default, а БД для тестов на каждом степе обнуляется.
  • Вопрос задан
  • 306 просмотров
Решения вопроса 1
sim3x
@sim3x
От фикстур старайся отходить - их никто не любит обновлять

создай конфиг для тестов и унаследуй его от базового конфига
progname/settings/
__init__.py
base.py
dev.py
test.py

запустит скульлайт в памяти
'NAME': ":memory:",

запускать пак тестов нужно будет так
./manage.py test --settings=progname.settings.test

./manage.py runserver --settings=progname.settings.dev
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы