Ihre tox.ini
hat zwei Probleme:
Erstens: die erzeugten Umgebung Namen in 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]
Wie Sie sehen, ist nichts mit Ihren Eingaben durchgeführt, wie die geschweiften Klammern nicht geschlossen sind. Aber selbst wenn sie geschlossen wären, würde die Substitution nicht stattfinden, da die Überweisung an die Deponien nicht dorthin gehört. Was Sie wollen, zu sagen, die richtigen Umgebungen für Ihre Bedürfnisse zu generieren sieht wie folgt aus (wenn ich Ihre Absichten richtig erraten - anders klären bitte in einem Kommentar):
envlist = {py27,py32}-django{16,17}
Dieser diese Umgebungs Namen erzeugt:
([email protected]) 17:26:20 [email protected] [0] < ~/work/tox/tests > 1745 %
tox -l
py27-django16
py27-django17
py32-django16
py32-django17
Sie können dann die Faktoren (zB py27
oder django16
) verwenden, um anzugeben, was geschehen soll, wenn Sie es bereits richtig gemacht haben. Es ist schwer, dieses Konzept in den Griff zu bekommen, aber das könnte Ihnen den Anfang machen. Werfen Sie auch einen Blick auf die docs about this feature - IMO erklären sie es ziemlich gut.
Das Hauptproblem ist, dass Sie sich auf die Deps beziehen müssen, wo Sie sie benötigen - in den Deps-Eintrag Ihres testenv
Abschnitt wie in der tox configuration specification beschrieben.
Ein minimales würde funktionierendes Beispiel sein:
[base]
deps = nose
[testenv]
deps = {[base]deps} # <-- reference your base deps here
commands = pip freeze
Die adpated tox.ini
aus Ihrer Frage aussehen würde jetzt:
[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
In Ihrem Fall aber - wenn man es in allen nur installiert werden soll Umgebungen brauchen Sie nicht einmal den Umweg über einen [base]
Abschnitt. Also die empfohlenen tox.ini
in Ihrem Fall wäre:
[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
Fragen zu meiner Antwort? Gib mir Bescheid. –