Вы должны либо определить переменную окружения DJANGO_SETTINGS_MODULE, либо вызвать settings.configure (), прежде чем получить доступ к настройкам - PullRequest
0 голосов
/ 16 января 2020

Это мой первый django проект, поэтому прошу прощения, если я не объясняю себя хорошо. Я пытаюсь написать несколько юнит-тестов.

Этот код работает как задумано:

from unittest import TestCase


class TestModel(TestCase):
    def test_CalculatePercentage(self):
        assert 1 == 1

Однако, когда я пытаюсь импортировать что-то из приложения, то есть:

from investor.models import Investor

Я получаю 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. ошибку:

Error
Traceback (most recent call last):
  File "C:\Program Files\Python38\lib\unittest\case.py", line 60, in testPartExecutor
    yield
  File "C:\Program Files\Python38\lib\unittest\case.py", line 676, in run
    self._callTestMethod(testMethod)
  File "C:\Program Files\Python38\lib\unittest\case.py", line 633, in _callTestMethod
    method()
  File "C:\Program Files\Python38\lib\unittest\loader.py", line 34, in testFailure
    raise self._exception
ImportError: Failed to import test module: tests
Traceback (most recent call last):
  File "C:\Program Files\Python38\lib\unittest\loader.py", line 436, in _find_test_path
    module = self._get_module_from_name(name)
  File "C:\Program Files\Python38\lib\unittest\loader.py", line 377, in _get_module_from_name
    __import__(name)
  File "C:\Users\lbrusokas\Documents\Dev\website\website_env\src\webapp\investor\tests.py", line 1, in <module>
    from investor.models import Investor
  File "C:\Users\lbrusokas\Documents\Dev\website\website_env\src\webapp\investor\models.py", line 2, in <module>
    from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
  File "C:\Program Files\Python38\lib\site-packages\django\contrib\auth\models.py", line 2, in <module>
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
  File "C:\Program Files\Python38\lib\site-packages\django\contrib\auth\base_user.py", line 47, in <module>
    class AbstractBaseUser(models.Model):
  File "C:\Program Files\Python38\lib\site-packages\django\db\models\base.py", line 87, in __new__
    app_config = apps.get_containing_app_config(module)
  File "C:\Program Files\Python38\lib\site-packages\django\apps\registry.py", line 249, in get_containing_app_config
    self.check_apps_ready()
  File "C:\Program Files\Python38\lib\site-packages\django\apps\registry.py", line 131, in check_apps_ready
    settings.INSTALLED_APPS
  File "C:\Program Files\Python38\lib\site-packages\django\conf\__init__.py", line 57, in __getattr__
    self._setup(name)
  File "C:\Program Files\Python38\lib\site-packages\django\conf\__init__.py", line 38, in _setup
    raise ImproperlyConfigured(
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.

Это - это структура моего проекта.

Я видел много постов и предложений по этому поводу, например, добавление переменных окружения, вызов settings.setup (), настройка pycharm, включение поддержки django и т. д. c, но у меня ничего не получилось.

Какие еще варианты нужно исправить, или это происходит где-то еще?

Заранее спасибо!

1 Ответ

0 голосов
/ 16 января 2020

Вы пытаетесь импортировать Python Testcase с from unittest import TestCase. Вам необходимо импортировать Django. Замените его на

from django.test import TestCase

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