2015-07-02 38 views
16

Ortam değişkenini çalıştığım yerden almak için setenv'de aşağıdakileri kullanıyorum ancak tüm değişkenleri içe aktarmanın bir yolu var. bir tarafından. Bu 2 değişkeni içe aktarmak için kullanılan (env: TEMPEST_CONFIG:} ve {env: TEMPEST_CONFIG_DIR:} gibiTüm çevre değişkenleri nasıl alınır?

.

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

cevap

24

passenv. 2.0 sürümü

PassEnv = boşlukla ayrılmış-GLOBNAMES

Yeni: Eğer yakalayacağım Üst ortamından tüm ortam değişkenleri erişebilir * tüm joker geçerseniz.

test komutlarını yürütürken test ortamına toksin çağırma ortamından kopyalanabilir eder Joker ortam değişkeni bir isim listesi. Belirtilen ortam değişkeni, toks çağırma ortamında bulunmuyorsa, yoksayılır. * kullanabilir ve? tek bir adla birden çok ortam değişkenini eşleştirmek için.

asgari tox.ini

çoğaltmak:

[tox] 
envlist = py27 
skipsdist = True 

[testenv] 
passenv = * 
whitelist_externals = echo 
commands = echo {env:MY_FANCY_ENV_VAR:} from my fancy env var :) 

çağırma Linux/Unix kabuk: Windows üzerinde

MY_FANCY_ENV_VAR='hello' tox 

çağırma cmd.exe:

set MY_FANCY_ENV_VAR=hello & tox 

çıkışı:

py27 create: /tmp/tt/.tox/py27 
py27 installed: 
py27 runtests: PYTHONHASHSEED='2037875709' 
py27 runtests: commands[0] | echo from my fancy env var :) 
hello from my fancy env var :) 
_______________________ summary __________________________ 
    py27: commands succeeded 
    congratulations :)