Ошибка Selenium Django во время миграции

Я пытаюсь использовать селен для тестирования моего приложения Django

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

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(), но я не могу получить код.

1 ответ

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

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

Другие вопросы по тегам