Как запускать тесты django в Pycharm Pro, получая ошибки ImproperlyConfigured и AppRegistryNotReady - PullRequest
0 голосов
/ 03 ноября 2019

У меня проблемы с запуском тестов django в PyCharm Pro.

  1. Я могу запустить python manage.py runserver очень хорошо.
  2. Я могу migrate, makemigrations, manage.py test просто отлично. На самом деле, все с manage.py работает как ожидалось.

Всякий раз, когда я запускаю тесты в PyCharm (нажав зеленую кнопку запуска), я получаю эту ошибку:

django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

Я сделал несколько вещей, чтобы исправить это:

  1. Я поместил в свой тестовый файл это:

    import os os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'mysite правильный каталог, я обещаю)

  2. У меня есть файл настроек и файл wsgi, и мой файл wsgi делает установить DJANGO_SETTINGS_MODULE:

    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

    application = get_wsgi_application()

  3. Единственное, что вывело меня из этой ошибки, - это настроить конфигурацию для этого класса тестирования, перейдя к Edit Configuations -> Environment -> Environment Variables и добавив туда DJANGO_SETTINGS_MODULE. Это только приводит меня к другой ошибке:

    django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

    Плюс, я должен сделать это для каждый тестовый класс и Я могу 'не запускать отдельные тесты в классе, а скорее запускать весь набор тестов в этом классе. Не хорошее решение ...

  4. Я вручную (в virtualenv) запустил export DJANGO_SETTINGS_MODULE=mysite.settings. Это ничего не изменило.

Итак, у меня нет идей, и я следовал всем советам, которые я мог найти в SO. Есть ли что-то еще, что я должен сделать в Pycharm? Опять же, cmdline работает нормально, но я бы предпочел не запускать тесты таким образом - плюс, я не могу отлаживать.

Редактировать: Возможно, стоит отметить, что я выполняю модульные тесты, пока мой сервер работает (это не должно иметь значения), и у меня также есть интерпретатор python, указывающий на тот в моем virtualenv.

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