Запуск токса с другой конфигурацией переменных среды - PullRequest
0 голосов
/ 31 января 2020

Я хочу запустить свой тест с разными значениями переменных среды. У меня есть этот tox.ini, который не делает то, что я хочу:

# tox.ini

[tox]
envlist = py37-{foo,bar}

[testenv]
description = Tests common
setenv =
    MY_VAR=COMMON
commands =
    env

[testenv:foo]
description = Tests foo
setenv =
    MY_VAR=FOO

[testenv:bar]
description = Tests bar
setenv =
    MY_VAR=BAR 

Свыше ini выдает следующий вывод:

$ tox
GLOB sdist-make: 

***

py37-foo run-test: commands[0] | env

***

MY_VAR=COMMON                                 <<<--- MY_VAR=foo is expected

***

py37-bar run-test: commands[0] | env

***

MY_VAR=COMMON                                 <<<--- MY_VAR=bar is expected

Что не так?

Я использую:

  • Win 10.0.18363 Build 18363
  • Python 3.7.4
  • tox: 3.14.0

Ответы [ 2 ]

1 голос
/ 01 февраля 2020

Ключом является Сжатие матрицы зависимостей . Эта техника приводит к компактному и не избыточному решению:

[tox]
envlist = py37-{foo,bar,baz}

[testenv]
setenv =
    MY_VAR=COMMON
    foo: MY_VAR=FOO
    bar: MY_VAR=BAR
commands =
    env 
1 голос
/ 31 января 2020

tox не объединяет среды. Каждая среда является производной от [testenv], но другие среды не рассматриваются для включения. Вы должны объединить их сами в tox.ini. Это должно работать:

[tox]
envlist = py37-{foo,bar}

[testenv]
description = Tests common
setenv =
    MY_VAR=COMMON
commands =
    env

[foo]
description = Tests foo
setenv =
    MY_VAR=FOO

[bar]
description = Tests bar
setenv =
    MY_VAR=BAR

[testenv:py37-foo]
description = Tests py37 foo
setenv = {[foo]setenv}

[testenv:py37-bar]
description = Tests py37 bar
setenv = {[bar]setenv}
...