У меня проблемы с запуском тестов django в PyCharm Pro.
- Я могу запустить
python manage.py runserver
очень хорошо. - Я могу
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.
Я сделал несколько вещей, чтобы исправить это:
Я поместил в свой тестовый файл это:
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
(с mysite
правильный каталог, я обещаю)
У меня есть файл настроек и файл wsgi, и мой файл wsgi делает установить DJANGO_SETTINGS_MODULE:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
application = get_wsgi_application()
Единственное, что вывело меня из этой ошибки, - это настроить конфигурацию для этого класса тестирования, перейдя к Edit Configuations -> Environment -> Environment Variables
и добавив туда DJANGO_SETTINGS_MODULE
. Это только приводит меня к другой ошибке:
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
Плюс, я должен сделать это для каждый тестовый класс и Я могу 'не запускать отдельные тесты в классе, а скорее запускать весь набор тестов в этом классе. Не хорошее решение ...
Я вручную (в virtualenv) запустил export DJANGO_SETTINGS_MODULE=mysite.settings
. Это ничего не изменило.
Итак, у меня нет идей, и я следовал всем советам, которые я мог найти в SO. Есть ли что-то еще, что я должен сделать в Pycharm? Опять же, cmdline работает нормально, но я бы предпочел не запускать тесты таким образом - плюс, я не могу отлаживать.
Редактировать: Возможно, стоит отметить, что я выполняю модульные тесты, пока мой сервер работает (это не должно иметь значения), и у меня также есть интерпретатор python, указывающий на тот в моем virtualenv.