3

通常,在定义pytest使用pytest-env插件的环境变量时,使用以下方法完成pytest.ini

[pytest]
env =
    DATA_DIR = data/test_assets

pytestpyproject.toml从 6.0 开始支持。应该如何以这种格式定义环境变量?以下不起作用:

[tool.pytest.ini_options]
env = [
    {DATA_DIR = "data/test_assets"}
]
4

2 回答 2

4

正确的格式是:

env = [
    "DATA_DIR = data/test_assets",
    "ROSETTA = rosetta/main"
]
于 2021-02-24T13:20:35.377 回答
1

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

问题具体是这一。在解析您的内容时,pyproject.toml它将您拥有的内容转换为以下内容:

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

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

于 2021-02-23T13:16:49.260 回答