2016-02-17 3 views
3

Я прочитал Q&A why django create test database, но ответа на вопрос нет.django sqlite Создание тестовой базы данных для псевдонима 'default'

У меня версия django 1.8.4.

Мой settings.py

if 'test' in sys.argv or 'test_coverage' in sys.argv: 
    DATABASES['default']['ENGINE'] = 'django.db.backends.sqlite3' 

Run

time ./manage.py test 

Raven is not configured (logging is disabled). Please see the documentation for more information. 
/Users/ioganegambaputi/work/foobd/foobd/core/forms.py:7: RemovedInDjango19Warning: The django.forms.util module has been renamed. Use django.forms.utils instead. 
    from django.forms.util import ErrorList 

/Users/ioganegambaputi/work/env/foobd/lib/python2.7/site-packages/templated_email/__init__.py:2: RemovedInDjango19Warning: django.utils.importlib will be removed in Django 1.9. 
    from django.utils.importlib import import_module 

/Users/ioganegambaputi/work/foobd/foobd/core/utils.py:50: RemovedInDjango19Warning: 'get_cache' is deprecated in favor of 'caches'. 
    self.cache = cache.get_cache(cache_alias or cache.DEFAULT_CACHE_ALIAS) 

Creating test database for alias 'default'... 

real 0m53.102s 
user 0m47.976s 
sys  0m1.544s 

Тест работает около 2-3 секунд, все остальное время он висит в Создание тестовой базы данных по умолчанию '' псевдонимом ...

Я думаю, что моя база данных должна быть создана в памяти очень быстро. У меня нет загруженных json-дампов. Как я могу сделать это быстрее? Кажется, я что-то пропустил ...

ОБНОВЛЕНО

Если я использую --keepdb флаг (как заметил в ответ он держит мою структуру базы данных, но не данные), во всяком случае, он висит так же, но с использованием существующей тестовой базы данных для псевдонима «default» ... label (

ответ

4

Создание тестовой базы данных - довольно тяжелая задача. Я думаю, что это нормально, что она потребляет большую часть времени. Но вы можете использовать ' keepdb ', чтобы сохранить базу данных для следующих тестовых прогонов:

python manage.py test --keepdb 
+0

это работает, если мой тест данные не является постоянными и могут быть изменены или зависят от метки времени? – theodor

+1

База данных будет опорожнена после каждого теста. Но django сохранит структуру базы данных. Он также будет работать с миграциями – ilse2005

+0

@ioganegambaputifonguser Помог ли мой ответ? Если да, то согласитесь, пожалуйста. – ilse2005

0

Выполнение тестов в бродяге?

Перезагрузка сделала трюк для меня.

vagrant halt 
vagrant up 

Я думаю, что в моем случае тест разбил отладчик PyCharm, который захватил тестирование оболочки.

Вы также можете попробовать restarting MySQL

Смежные вопросы