django-pytest 没有使用 pytest.ini 中提到的配置

django-pytest is not using configs mentioned in pytest.ini

我正在为我的 Django 应用程序使用 pytest-django 作为单元测试用例。我在根目录(与 manage.py 相同级别)中创建了 pytest.ini,具有以下配置:

[pytest]
DJANGO_SETTINGS_MDOULE = mysite.settings
python_files = tests.py test_*.py *_tests.py
addopts = --reuse-db

每当我在我的根目录中 运行 命令 pytest 时,它都会给我以下错误:

ImportError while loading conftest '/Users/aakash/Desktop/experiments/repos/organonconnect/conftest.py'.
conftest.py:4: in <module>
    from django.contrib.auth.models import User, Group
../venv/lib/python3.7/site-packages/django/contrib/auth/models.py:2: in <module>
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
../venv/lib/python3.7/site-packages/django/contrib/auth/base_user.py:47: in <module>
    class AbstractBaseUser(models.Model):
../venv/lib/python3.7/site-packages/django/db/models/base.py:103: in __new__
    app_config = apps.get_containing_app_config(module)
../venv/lib/python3.7/site-packages/django/apps/registry.py:252: in get_containing_app_config
    self.check_apps_ready()
../venv/lib/python3.7/site-packages/django/apps/registry.py:134: in check_apps_ready
    settings.INSTALLED_APPS
../venv/lib/python3.7/site-packages/django/conf/__init__.py:79: in __getattr__
    self._setup(name)
../venv/lib/python3.7/site-packages/django/conf/__init__.py:64: in _setup
    % (desc, ENVIRONMENT_VARIABLE))
E   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.

然而,每当我 运行 pytest --ds=mysite.settings,它工作正常,但没有 pytest.ini.

中提到的配置

我创建了一个与 pytest.ini 相同级别的 conftest.py,我正在使用 Python 3.7.7、pytest-5.4.1、py-1.8.1、pluggy -0.13.1

我做错了什么?任何帮助,将不胜感激。提前致谢!

django_find_project = True

将此添加到您的 pytest.ini

编辑:pytest.ini 中的 DJANGO_SETTINGS_MODULE 似乎拼错了。请修复它。

Pytest 在选择要在测试中使用哪个 settings.py 时有优先顺序,pytest.ini 中的设置仅用作最后的手段。

Pytest 在 运行 测试时首先查看 --ds 设置,如果没有设置它然后使用环境变量 DJANGO_SETTINGS_MODULE,如果这也没有设置它使用pytest.ini 文件中设置的设置。

来源:https://pytest-django.readthedocs.io/en/latest/configuring_django.html