web-dev-qa-db-ja.com

toxにすべての環境変数をインポートする方法

Setenvでfollowingを使用して、実行した場所から環境変数をインポートしていますが、すべての変数をインポートする方法があるため、実際に1つずつインポートする必要はありません。

例:{env:TEMPEST_CONFIG:}および{env:TEMPEST_CONFIG_DIR:}は、これら2つの変数のインポートに使用されます。

[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}
21

passenv を使用できます。キャッチオールワイルドカードを渡すと*親環境からすべての環境変数にアクセスできます。

passenv = SPACE-SEPARATED-GLOBNAMES

バージョン2.0の新機能

テストコマンドの実行時にtox呼び出し環境からテスト環境にコピーされるワイルドカード環境変数名のリスト。指定された環境変数がtox呼び出し環境に存在しない場合、それは無視されます。 *と?を使用できます1つの名前で複数の環境変数を照合します。

最小限の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!
33