2016-03-17 1 views
-2

Я пытаюсь использовать селен для тестирования моего Джанго приложенияСелена ошибка Джанго во время миграции

После выполнения следующей команды:

python3 manage.py test function_test(folder) 

Следующая ошибка пришла:

*Traceback (most recent call last): 
    File "/usr/local/lib/python3.4/dist-packages/django/db/backends/base/base.py", line 130, in ensure_connection 
    self.connect() 
    File "/usr/local/lib/python3.4/dist-packages/django/db/backends/base/base.py", line 122, in connect 
    connection_created.send(sender=self.__class__, connection=self) 
    File "/usr/local/lib/python3.4/dist-packages/django/dispatch/dispatcher.py", line 189, in send 
    response = receiver(signal=self, sender=sender, **named) 
    File "/usr/local/lib/python3.4/dist-packages/django_hstore/apps.py", line 48, in __call__ 
    return [x(connection) for x in handlers] 
    File "/usr/local/lib/python3.4/dist-packages/django_hstore/apps.py", line 48, in <listcomp> 
    return [x(connection) for x in handlers] 
    File "/usr/local/lib/python3.4/dist-packages/django_hstore/apps.py", line 76, in register_hstore_handler 
    register_hstore(connection.connection, globally=HSTORE_REGISTER_GLOBALLY) 
    File "/usr/local/lib/python3.4/dist-packages/psycopg2/extras.py", line 775, in register_hstore 
    "hstore type not found in the database. " 
psycopg2.ProgrammingError: hstore type not found in the database. please install it from your 'contrib/hstore.sql' fil*e 

Я уже установил hstore в своем основном проекте, и я запускаю тесты на live_server_test_case, поэтому он не должен создавать проблему.

Есть ли способ, по которому я могу пропустить миграции перед запуском селенового кода, поскольку я упомянул о создании типа hstore в функции setup(), но я не могу достичь кода.

ответ

0

Когда вы запускаете тесты, Django создает тестовую базу данных. Использование LiveServerTestCase означает, что есть сервер Django, который может использоваться в тестах (например, Selenium), это не означает, что он использует базу данных в реальном времени.

Похоже, вам нужно создать миграцию для установки HStoreExtension. Тестер Django запускает миграцию, предотвращая ошибку. См. the docs или this question для получения дополнительной информации.

+0

Я уже создал миграцию в своем live db для hstore и правильно ее работаю, когда я использую свою модель, но когда я запускаю селен, используя упомянутый выше способ, он показывает, что невозможно создать тестовый db из-за расширения hstore вопрос, как бороться с этим .... ???? – Mona

+0

, а также добавить к нему, я создал функцию настройки в коде селена, где я добавляю cursore.execute ("create hstore extension"), но поскольку миграции выполняются до запуска функции установки, возникает ошибка, у вас есть предложения для этого?? – Mona

+0

Убедитесь, что миграция hstore выполняется перед любыми миграциями, которые создают поля hstore. Для этого вам может потребоваться изменить зависимости ваших миграций. – Alasdair

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

  • Нет связанных вопросов^_^