Как вставить переменную среды во время тестирования с помощью pytest pyproject.toml
Обычно при определении переменной среды для использования
pytest-env
плагин, это делается с помощью
pytest.ini
:
[pytest]
env =
DATA_DIR = data/test_assets
pytest
поддерживает
pyproject.toml
с 6.0. Как предполагается определять переменную среды в этом формате? Следующее не работает:
[tool.pytest.ini_options]
env = [
{DATA_DIR = "data/test_assets"}
]
2 ответа
Итак, проблема заключается в
pytest-env
плагин. Прежде всего, похоже, что его разработчики отказались от него, поскольку он не обновлялся с 2017 года. Все сводится к тому, как плагин анализирует часть
toml
файл, как показано здесь .
Проблема именно в этой строке . При разборе содержимого вашего
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"
]