python tox: как использовать именованный env с несколькими версиями? - PullRequest
0 голосов
/ 19 марта 2020

Мне нужно иметь возможность вызывать среду с тегами (из-за установки CICD, которая не просто вызывает tox, а скорее tox -e tag1,tag2,...), но я хочу, чтобы env использовал несколько версий python. Я хочу что-то вроде этого:

[tox]
envlist = mytag

[testenv:mytag]
deps=
    pytest
    coverage
    pytest-cov
python_versions = py37, py38 // I KNOW THIS IS NOT RIGHT

commands=
    pytest ...

Единственный способ, которым я в настоящее время знаю, как это сделать, это уродливо следующим образом (вызов tox -e mytag37,mytag38, но это плохо масштабируется при добавлении новых версий)

[tox]
envlist = mytag37, mytag38

[testenv:mytag37]
basepython=python37 // see
deps=
    pytest
    coverage
    pytest-cov

commands=
    pytest ...


[testenv:mytag38]
basepython=python38 // see
deps=
    pytest
    coverage
    pytest-cov

commands=
    pytest ...

Есть ли более чистый способ добиться этого?

Ответы [ 2 ]

1 голос
/ 19 марта 2020

Использование замена :

[tox]
envlist = mytag37, mytag38

[mytag]
deps=
    pytest
    coverage
    pytest-cov
commands=
    pytest ...

[testenv:mytag37]
basepython=python37
deps={[mytag]deps}
commands={[mytag]commands}

[testenv:mytag38]
basepython=python38
deps={[mytag]deps}
commands={[mytag]commands}
0 голосов
/ 20 марта 2020

Не совсем уверен, возможно, я полностью упускаю суть вашего вопроса, но я полагаю, что вы ищете, в основном, рабочий режим по умолчанию tox , так что чего-то вроде следующего должно быть достаточно :

[testenv]
deps =
    pytest
    coverage
    pytest-cov
commands =
    pytest ...

И звоните:

$ tox -e py36,py37,py38
...