Früher war ich manuell ein Makefile verwenden, das in etwa so aussah:Installieren virtualenv mit tox wenn requirements.txt oder setup.py ändert
.PHONY: all
all: tests
.PHONY: tests
tests: py_env
bash -c 'source py_env/bin/activate && py.test tests'
py_env: requirements_dev.txt setup.py
rm -rf py_env
virtualenv py_env
bash -c 'source py_env/bin/activate && pip install -r requirements_dev.txt'
Dies den schönen Nebeneffekt hatte, dass, wenn ich geändert requirements_dev.txt oder setup.py, es würde mein virtualenv wiederherstellen. Aber fühlt sich ein bisschen klobig an.
Ich möchte tox
verwenden, um eine ähnliche Sache zu tun. Ich verstehe, tox
hat eine --recreate
Option, aber ich würde eher anrufen, dass nur wenn ich muss.
Mein neues Setup ist so etwas wie folgt aus:
# Makefile
.PHONY: all
all: tests
.PHONY: tests
tests:
tox
und
# tox.ini
[tox]
project = my_project
envlist = py26,py27
[testenv]
install_command = pip install --use-wheel {opts} {packages}
deps = -rrequirements_dev.txt
commands =
py.test {posargs:tests}
Eine ideale Lösung würde die Dinge nur in tox
verwenden, aber eine akzeptable Lösung würde das Makefile und die --recreate
Flagge einbeziehen.
Ich möchte diese Antwort auch. – bukzor