Модель только для испытаний - PullRequest
3 голосов
/ 27 ноября 2010

Я хочу определить модель только для использования в моем наборе тестов.Было бы неплохо не создавать свой стол на производстве.Есть ли переменная, которую я могу проверить снова, чтобы проверить, нахожусь ли я в тестовом режиме?

Ответы [ 2 ]

0 голосов
/ 19 августа 2014

Если вы используете последнюю версию Django (я могу подтвердить версии с 1.4 до 1.6) и используете django.test, вы можете поместить все определения ваших тестовых моделей в tests/__init__.py. Таким образом, вы будете иметь тестовые модели в модульных тестах, не загрязняя производственную базу данных.

0 голосов
/ 29 ноября 2010

Если вы выполняете свои тесты с использованием Django-инфраструктуры тестирования (python manage.py test), тогда он автоматически создаст все таблицы для ваших моделей в совершенно другой базе данных, а затем заполнит эти таблицы из приспособления вашего приложения, до запуска ваших тестов. После завершения тестов база данных будет удалена. (Если ваша производственная база данных имеет имя foo, тестовая база данных будет иметь имя foo_test, если вы не укажете иначе .)

Если у вас есть модели, которые вам нужны только для тестов, то все, что вам нужно сделать, это поместить ваши тестовые модели в ту же структуру каталогов, что и ваш тестовый код, а не смешиваться с вашими производственными моделями. Это гарантирует, что они не будут случайно добавлены в вашу производственную базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...