Как выполнение теста в PyCharm приводит к ошибке «Класс модели не объявляет явную ошибку app_label»? - PullRequest
0 голосов
/ 02 апреля 2019

Я использую Django, Python 3.7 и PyCharm 2018.3.5. Я пытаюсь запустить тест в PyCharm, щелкнув правой кнопкой мыши по имени теста и выбрав «Выполнить тест:« имя теста »». Это приводит к следующей ошибке

RuntimeError: Model class appname.models.Label doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

Это рассматриваемая модель, вверху моего файла models.py ...

class Label(models.Model):
    name = models.CharField(max_length=200)

    def __str__(self):
        return self.name

    class Meta:
        unique_together = ("name",)

Что очень странно, если я запускаю тесты вне PyCharm (например, в командной строке терминала, используя «python manage.py test»), все работает нормально. Таким образом, проблема заключается в неправильной настройке PyCharm. Мне неясно, как атаковать проблему дальше. Ниже приведена структура каталогов моего проекта ...

appname
    __init__.py
    __pycache__
    admin.py
    apps.py
    fixtures
    management
    migrations
    models.py
    services.py
    static
    templates
    tests.py
    views.py
manage.py
templates
venv
appname_project

Редактировать: Я отредактировал переменные своего окружения следующим образом

PYTHONUNBUFFERED=1
DJANGO_DEVELOPMENT=true
DJANGO_SETTINGS_MODULE=appname_project.settings

Это потому, что мои файлы настроек зависят от конкретной среды, поэтому путь к моему файлу dev *

appname_project/settings/dev.py

, но даже добавление вышеуказанного приводит к той же ошибке.

1 Ответ

1 голос
/ 03 апреля 2019

PyCharm использует свой собственный test_runner, когда используется встроенная опция для запуска тестов.Большую часть времени он не может найти settings.py файл.Таким образом, вы должны явно определить settings файл.

  1. Перейдите в верхний правый угол и выберите «Редактировать конфигурации» в меню конфигураций запуска.

  2. Выбратьособая настройка для запуска вашего теста.

  3. Нажмите на переменные окружения.Добавьте DJANGO_SETTINGS_MODULE с YOUR_PROJECT.settings (или путем к любому файлу настроек, который вы используете) в качестве значения.

  4. Сохраните и запустите снова.

Теперь это должно работать.

...