In precedenza sono stato manualmente utilizzando un Makefile che sembrava qualcosa di simile:Reinstallare virtualenv con tox quando requirements.txt o setup.py cambia
.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'
Ciò ha avuto la bella effetto collaterale che, se ho cambiato requirements_dev.txt o setup.py, ricostruirà il mio virtualenv. Ma si sente un po 'goffo.
Mi piacerebbe usare tox
per fare una cosa simile. Capisco che tox
abbia un'opzione --recreate
, ma preferisco chiamare lo solo quando è necessario.
La mia nuova configurazione è qualcosa di simile:
# Makefile
.PHONY: all
all: tests
.PHONY: tests
tests:
tox
e
# 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}
Una soluzione ideale sarebbe utilizzare solo le cose in tox
, tuttavia una soluzione accettabile comporterebbe il Makefile e la bandiera --recreate
.
Voglio anche questa risposta. – bukzor