如何解决 PytestConfigWarning: Unknown config option: DJANGO_ SETTINGS_MODULE 错误?

Dhi*_*abi 17 django pytest pytest-django

我正在使用 django 构建我的网站,并使用 django-pytest 来测试我的应用程序,但我收到此错误 注意我正在使用 python 3.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
Run Code Online (Sandbox Code Playgroud)

这是我的 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
Run Code Online (Sandbox Code Playgroud)

我运行这个命令

pytest
Run Code Online (Sandbox Code Playgroud)

这是我的 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
Run Code Online (Sandbox Code Playgroud)

Dhi*_*abi 14

我发现我的问题的原因是什么。我刚卸载

django-pytest 0.2.0

并安装

pytest-django

相反,通过运行以下命令

pip install pytest-django
Run Code Online (Sandbox Code Playgroud)

pip安装后运行以下命令pytest-django

set DJANGO_SETTINGS_MODULE=testing.settings
Run Code Online (Sandbox Code Playgroud)

一切都很好。

  • 哦,@DIAA SHALABY,你应该删除“DJANGO_ SETTINGS_MODULE”中的空格 (2认同)

Jac*_*els 10

接受的答案既不回答OP问题也不提供解决方案。

我遇到了同样的问题,我正在使用Django 4.0Pytest 7.2.1

我使用pytest.ini作为配置文件。

解决方案:

[tool:pytest]
DJANGO_SETTINGS_MODULE = core.settings.local
python_files = test_*.py
Run Code Online (Sandbox Code Playgroud)

添加关键字工具解决了这个问题。

可能需要的另一件事是添加 ENV 变量:

export DJANGO_SETTINGS_MODULE=mysite.settings 
Run Code Online (Sandbox Code Playgroud)