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
我正在为我的 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