Как запустить модульные тесты Django для базы данных postgre - PullRequest
0 голосов
/ 08 марта 2019

Я использую cover.py и django-nose для запуска юнит-тестов. Все работало нормально с базой данных sqlite «по умолчанию». Тем не менее, когда я обменял это для базы данных postgre, я получил следующую ошибку:

django.db.utils.ProgrammingError: отношение "authentication_user" не существует

In test_settings.py:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2',
            'HOST': 'localhost',
            'PORT': 5432,
            'NAME': 'testing_db',
            'USER': 'user_name',
            'PASSWORD': 'password'
        }
}

Команда, используемая для запуска тестов (находится в папке «tests»):

coverage run manage.py test tests

Как ни странно, если я запускаю отдельного TestCase следующим образом, тест выполняется нормально (ошибка возникает только при запуске набора тестов):

coverage run manage.py test tests.test_something

Есть идеи, что здесь происходит не так?

1 Ответ

0 голосов
/ 08 марта 2019

сразу после того, как вы закончили настройку проекта и чтобы перейти на страницу ADMIN, вам нужно было выполнить команду:

python manage.py создаёт пользователя

поскольку вы переключили базы данных на postgres, вам нужно запустить команду из корневой папки проекта, чтобы использовать

manage.py

скрипт, и создайте нового суперпользователя. После этого вы должны запустить миграцию на новую БД, и все готово. дайте мне знать, как все прошло.

ref: Python Superuser Doc

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