【问题标题】:How to import all the environment variables in tox如何导入tox中的所有环境变量
【发布时间】:2015-07-02 18:33:16
【问题描述】:

我在 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}

【问题讨论】:

    标签: python virtualenv setenv tox


    【解决方案1】:

    您可以使用passenv。如果您通过 catch all 通配符 * 您可以访问父环境中的所有环境变量:

    passenv=SPACE-SEPARATED-GLOBNAMES

    2.0 版中的新功能。

    应复制的通配符环境变量名称列表 从tox调用环境到测试环境的时候 执行测试命令。如果指定的环境变量没有 存在于 tox 调用环境中,它被忽略。您可以使用 * 和 ?用一个名称匹配多个环境变量。

    最小的tox.ini 重现(不需要项目):

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

    在 linux/unix shell 中调用:

    MY_FANCY_ENV_VAR=no tox -qq
    

    在 Windows cmd.exe 上调用:

    set MY_FANCY_ENV_VAR=no & tox -qq
    

    输出:

    computer says no!
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-14
      • 1970-01-01
      • 2021-06-19
      • 2019-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多