тестирование приложения django с унаследованной базой данных - как избежать воссоздания БД для каждого теста? - PullRequest
1 голос
/ 05 января 2010

Я создаю веб-приложение с использованием фреймворка Django1.1 с наложенной схемой и данными базы данных (фактически - db уже существует - Postgresql). Я уже писал модели, теперь я хочу провести юнит-тестирование.

Проблема: исполнитель тестов уничтожает и восстанавливает (используя информацию из моделей) базу данных после каждого метода тестирования, но это нежелательно. Я хотел бы сохранить хотя бы схему все время, очистка данных приемлема. Есть ли хороший способ получить это поведение?

(одним из решений является использование модуля unittest, установка / очистка всего вручную, но это неудовлетворительно)

Ответы [ 2 ]

2 голосов
/ 06 января 2010

После некоторого повторного поиска в Google (первая попытка была несколько недель назад, но я просто не смог найти его, потому что он появился месяц назад). Я нашел эту тему , которая приводит меня к Джанго тест-Utils ; Постоянный тестер базы данных (например, python manage.py quicktest) решает мой случай (кроме того, в целом, похоже, это хорошее приложение). Кроме того, мне пришлось настроить опцию TEST_DATABASE_NAME в settings.py для моей основной базы данных, чтобы она соответствовала моим потребностям.

0 голосов
/ 05 января 2010

Это не дает вам поведение, о котором вы просите, просто потенциальное альтернативное поведение:

В то время как я развертываю и запускаю интеграционные тесты для моей действующей базы данных, я запускаю модульные тесты для базы данных SQLite. Это небольшое изменение конфигурации, переключающее механизм БД для его работы. В конечном итоге он работает быстрее и не мешает любой другой работе, которую я делаю.

...