如何使用 pytest pyproject.toml 插入测试时环境变量

问题描述

通常,在使用 find -name yes.sh -exec {} + find -name yes.sh -exec < argument > {} + 插件为 pytest 定义环境变量时,这是使用 pytest-env 完成的:

pytest.ini

[pytest] env = DATA_DIR = data/test_assets 从 6.0 开始支持 pytest。应该如何以这种格式定义环境变量?以下方法不起作用:

pyproject.toml

解决方法

因此问题出在 pytest-env 插件上。首先,它似乎已被其维护者放弃,因为它自 2017 年以来一直没有更新。归结为插件如何解析 here 所示的 toml 文件部分。>

问题特别在于 line。解析 pyproject.toml 的内容时,它会将您所拥有的内容转换为以下内容:

part = e.partition("=")
# ('{DATA_DIR ','=',' "data/test_assets"}')
key = part[0].strip()
# '{DATA_DIR'

这意味着它将您的环境变量转换为具有 '{DATA_DIR' 的键,因此它似乎没有按预期工作。您需要切换回之前用于环境变量的格式,或者删除大括号,因为它们似乎与此插件不匹配。

,

正确的格式是:

env = [
    "DATA_DIR = data/test_assets","ROSETTA = rosetta/main"
]

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...