如何解决 PytestConfigWarning: Unknown config option: DJANGO_ SETTINGS_MODULE 错误?
How to solve PytestConfigWarning: Unknown config option: DJANGO_ SETTINGS_MODULE error?
我正在使用 django 构建我的网站并且我使用 django-pytest 来测试我的应用程序但是我遇到了这个错误
注意我用的是python3.9
================================================================== warnings summary
===================================================================
..\venv\lib\site-packages\_pytest\config\__init__.py:1233
c:\users\eng_diaa_shalaby\desktop\unittest\venv\lib\site-packages\_pytest\config\__init__.py:1233: PytestConfigWarning: Unknown config option: DJANGO_
SETTINGS_MODULE
self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")
-- Docs: https://docs.pytest.org/en/stable/warnings.html
这是我的pytest.ini文件内容
# -- FILE: pytest.ini (or tox.ini)
[pytest]
DJANGO_SETTINGS_MODULE = testing_settings
# -- recommended but optional:
python_files = tests.py test_*.py *_tests.py
我运行这个命令
pytest
这是我的 venv 包
Package Version
------------- -------
asgiref 3.3.4
atomicwrites 1.4.0
attrs 21.2.0
colorama 0.4.4
coverage 5.5
Django 3.2.4
django-pytest 0.2.0
iniconfig 1.1.1
packaging 20.9
pip 21.1.2
pluggy 0.13.1
py 1.10.0
pyparsing 2.4.7
pytest 6.2.4
pytz 2021.1
setuptools 57.0.0
sqlparse 0.4.1
toml 0.10.2
我找到了问题的原因。
我刚卸载
django-pytest 0.2.0
并安装
pytest-django
改为 运行 执行以下命令
pip install pytest-django
和运行安装pip后的以下命令pytest-django
set DJANGO_SETTINGS_MODULE=testing.settings
一切正常。
您应该通过删除 =
:
周围的空格来更正您的 pytest.ini
文件
[pytest]
DJANGO_SETTINGS_MODULE=your_project_name.settings
注意:
根据 Django 结构,您的项目应该有一个包含 settings.py
文件的子文件夹。您需要将 pytest 指向此文件并使用点 .
而不是 /
.
警告
PytestConfigWarning: Unknown config option: some-name
表示配置选项 some-name
不为 pytest
或任何当前安装的 pytest
插件所知(正如警告所暗示的那样)。特别是,这里表示 pytest-django
没有安装,或者由于某种原因 pytest
不可见(例如,您使用错误的 pip
命令安装了 pytest-django
).
要排除故障,首先列出 pytest
使用 pytest -VV
:
找到的所有已安装插件
$ pytest -VV
This is pytest version 6.2.5, imported from /private/tmp/so/lib/python3.9/site-packages/pytest/__init__.py
setuptools registered plugins:
pytest-django-4.5.2 at /private/tmp/so/lib/python3.9/site-packages/pytest_django/plugin.py
pytest-cov-3.0.0 at /private/tmp/so/lib/python3.9/site-packages/pytest_cov/plugin.py
此处,pytest
报告发现了两个插件:pytest-cov
和 pytest-django
。
现在,如果未列出 pytest-django
,请检查它的安装位置,例如发出 pip show pytest-django
并在 Location
:
下寻找路径
$ pip show pytest-django
...
Location: /private/tmp/so/lib/python3.9/site-packages
或者,如果 pip
对您不可用,请检查从哪里 Python 从 via
导入 pytest_django
包
$ python -c 'import pytest_django; print(pytest_django.__path__[0])'
/private/tmp/so/lib/python3.9/site-packages/pytest_django
两个输出中 site-packages
目录的路径应该匹配。在此示例中,pytest -VV
和 pip show pytest-django
都将 /private/tmp/so/lib/python3.9/site-packages
报告为安装路径。如果不同,请使用正确的 Python 环境重新安装 pytest-django
。
我正在使用 django 构建我的网站并且我使用 django-pytest 来测试我的应用程序但是我遇到了这个错误 注意我用的是python3.9
================================================================== warnings summary
===================================================================
..\venv\lib\site-packages\_pytest\config\__init__.py:1233
c:\users\eng_diaa_shalaby\desktop\unittest\venv\lib\site-packages\_pytest\config\__init__.py:1233: PytestConfigWarning: Unknown config option: DJANGO_
SETTINGS_MODULE
self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")
-- Docs: https://docs.pytest.org/en/stable/warnings.html
这是我的pytest.ini文件内容
# -- FILE: pytest.ini (or tox.ini)
[pytest]
DJANGO_SETTINGS_MODULE = testing_settings
# -- recommended but optional:
python_files = tests.py test_*.py *_tests.py
我运行这个命令
pytest
这是我的 venv 包
Package Version
------------- -------
asgiref 3.3.4
atomicwrites 1.4.0
attrs 21.2.0
colorama 0.4.4
coverage 5.5
Django 3.2.4
django-pytest 0.2.0
iniconfig 1.1.1
packaging 20.9
pip 21.1.2
pluggy 0.13.1
py 1.10.0
pyparsing 2.4.7
pytest 6.2.4
pytz 2021.1
setuptools 57.0.0
sqlparse 0.4.1
toml 0.10.2
我找到了问题的原因。 我刚卸载
django-pytest 0.2.0
并安装
pytest-django
改为 运行 执行以下命令
pip install pytest-django
和运行安装pip后的以下命令pytest-django
set DJANGO_SETTINGS_MODULE=testing.settings
一切正常。
您应该通过删除 =
:
pytest.ini
文件
[pytest]
DJANGO_SETTINGS_MODULE=your_project_name.settings
注意:
根据 Django 结构,您的项目应该有一个包含 settings.py
文件的子文件夹。您需要将 pytest 指向此文件并使用点 .
而不是 /
.
警告
PytestConfigWarning: Unknown config option: some-name
表示配置选项 some-name
不为 pytest
或任何当前安装的 pytest
插件所知(正如警告所暗示的那样)。特别是,这里表示 pytest-django
没有安装,或者由于某种原因 pytest
不可见(例如,您使用错误的 pip
命令安装了 pytest-django
).
要排除故障,首先列出 pytest
使用 pytest -VV
:
$ pytest -VV
This is pytest version 6.2.5, imported from /private/tmp/so/lib/python3.9/site-packages/pytest/__init__.py
setuptools registered plugins:
pytest-django-4.5.2 at /private/tmp/so/lib/python3.9/site-packages/pytest_django/plugin.py
pytest-cov-3.0.0 at /private/tmp/so/lib/python3.9/site-packages/pytest_cov/plugin.py
此处,pytest
报告发现了两个插件:pytest-cov
和 pytest-django
。
现在,如果未列出 pytest-django
,请检查它的安装位置,例如发出 pip show pytest-django
并在 Location
:
$ pip show pytest-django
...
Location: /private/tmp/so/lib/python3.9/site-packages
或者,如果 pip
对您不可用,请检查从哪里 Python 从 via
pytest_django
包
$ python -c 'import pytest_django; print(pytest_django.__path__[0])'
/private/tmp/so/lib/python3.9/site-packages/pytest_django
两个输出中 site-packages
目录的路径应该匹配。在此示例中,pytest -VV
和 pip show pytest-django
都将 /private/tmp/so/lib/python3.9/site-packages
报告为安装路径。如果不同,请使用正确的 Python 环境重新安装 pytest-django
。