Ошибка 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 запустит миграцию, предотвратив ошибку. См. Документы или этот вопрос для получения дополнительной информации.