为什么pytest(pytest-django)不能通过decouple访问常规django文件正常访问的.env变量?

ojsjcaue  于 2023-04-13  发布在  Go
关注(0)|答案(1)|浏览(142)

我有一个django项目,我正在使用pytestpytest-django设置测试环境。
之前,我已经使用decouple模块设置了像DB_HOST这样的环境变量。这些变量在常规django Python文件中使用时工作正常。
但是,当我在使用相同文件的测试中运行pytest时,找不到这些变量。
decouple.UndefinedValueError: DB_HOST not found. Declare it as envvar or define a default value.
我的pytest.ini文件:

[pytest]
DJANGO_SETTINGS_MODULE = bapi_django.settings

错误建议声明这些变量,但对我来说似乎是反DRY的。
我是否可以使用我的django项目级env变量,或者我必须从头开始重新定义它们?

wgeznvg7

wgeznvg71#

您是否在settings.py中设置了DB_HOST
我没有使用decouple,而是使用.env-文件和environ模块,在我的settings.py中有以下内容:

import environ

env = environ.Env(DEBUG=(bool, False))

BASE_DIR = Path(__file__).resolve().parent.parent

# Take environment variables from .env file
environ.Env.read_env(os.path.join(BASE_DIR, ".env"))

查看decouple自述文件,应该可以在settings.py中使用以下内容:

from decouple import config

DB_HOST = config("DB_HOST")

相关问题