Как импортировать все переменные среды в токсины

Я использую следующее в setenv для импорта переменной окружения из того, где я запускаю, но есть способ импортировать все переменные, чтобы мне не нужно было импортировать по одному.

например: {env: TEMPEST_CONFIG:} и {env: TEMPEST_CONFIG_DIR:} используется для импорта этих двух переменных.

[testenv:nosetests]
setenv =
    TEMPEST_CONFIG={env:TEMPEST_CONFIG:}
    TEMPEST_CONFIG_DIR={env:TEMPEST_CONFIG_DIR:}
deps = {[testenv]deps}
commands =
    find . -type f -name "*.pyc" -delete
    bash {toxinidir}/tools/setup.sh
    nosetests --with-xunit {posargs}

Ответы

Ответ 1

Вы можете использовать passenv. Если вы передадите подстановочный знак "все подстановочные знаки * вы получите доступ ко всем переменным среды из родительской среды:

PassEnv = пробел записаны-GLOBNAMES

Новое в версии 2.0.

Список имен переменных с подстановочными символами среды, которые должны быть скопированы из среды вызова tox в тестовую среду при выполнении тестовых команд. Если указанная переменная среды не существует в среде вызова токсина, она игнорируется. Вы можете использовать * и? сопоставить несколько переменных среды с одним именем.

минимальный tox.ini для воспроизведения (проект не требуется):

[tox]
skipsdist = True

[testenv]
passenv = *
skip_install = True
commands = python -c "print('computer says: {env:MY_FANCY_ENV_VAR:}!')"

вызов в оболочке linux/unix:

MY_FANCY_ENV_VAR=no tox -qq

вызов на Windows cmd.exe:

set MY_FANCY_ENV_VAR=no & tox -qq

выход:

computer says: no!