Ваш tox.ini
две проблемы:
Первое: сгенерированные имена среды в envlist
([email protected]) 17:26:11 [email protected] [1] < ~/work/tox/tests > 1744 %
tox -l
py27-django16-{[base]deps]
py32-django16-{[base]deps]
py27-django17-{[base]deps]
py32-django17-{[base]deps]
Как вы видите, ничего не делается с записями в фигурные скобки не закрыты. Но даже если бы они были закрыты, замена не происходила бы, так как реферал к папкам там не принадлежал. То, что вы хотите сказать, для создания правильных условий для ваших потребностей выглядит следующим образом (если я предполагаю, что ваши намерения правильно - в противном случае просьба уточнить в комментарии):
envlist = {py27,py32}-django{16,17}
Это создает эти имена среды:
([email protected]) 17:26:20 [email protected] [0] < ~/work/tox/tests > 1745 %
tox -l
py27-django16
py27-django17
py32-django16
py32-django17
Затем вы можете использовать факторы (например, py27
или django16
), чтобы указать, что должно произойти, когда вы это делаете правильно. Трудно понять эту концепцию, но это может заставить вас начать. Также посмотрите на docs about this feature - IMO, они объясняют это довольно хорошо.
Основная проблема заключается в том, что вам нужно обратиться к папкам, где они вам нужны, - в записи депо вашей секции testenv
, как указано в tox configuration specification.
Минимальный рабочий пример был бы:
[base]
deps = nose
[testenv]
deps = {[base]deps} # <-- reference your base deps here
commands = pip freeze
adpated tox.ini
из вашего вопроса будет выглядеть так:
[tox]
envlist = {py27,py32}-django{16,17}
[base]
deps = nose
[testenv]
commands = {envpython} setup.py nosetests
basepython =
py27: python2.7
py32: python3.2
deps =
{[base]deps}
django16: Django>=1.6,<1.7
django17: Django>=1.7,<1.8
В вашем случае, хотя - если вы просто хотите установить его во всех вам даже не нужен обход через раздел [base]
. Поэтому рекомендованный tox.ini
в вашем случае будет:
[tox]
envlist = {py27,py32}-django{16,17}
[testenv]
basepython =
py27: python2.7
py32: python3.2
deps =
nose # just add the dep here unconditionally for all envs
django16: Django>=1.6,<1.7
django17: Django>=1.7,<1.8
commands = {envpython} setup.py nosetests
любые вопросы о моем ответе? Дай мне знать. –