Раньше я вручную использовал Makefile, который выглядел примерно так:
.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'
У этого был хороший побочный эффект: если я изменил требования_dev.txt или setup.py, он перестроил бы мой virtualenv. Но чувствует себя немного неуклюжим.
Я хотел бы использовать tox
для создания аналогичной вещи. Я понимаю, что tox
имеет параметр --recreate
, но я бы скорее назвал это, только когда мне нужно.
Моя новая настройка выглядит примерно так:
# Makefile
.PHONY: all
all: tests
.PHONY: tests
tests:
tox
и
# 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}
Идеальное решение будет использовать только вещи в tox
, однако приемлемое решение будет включать флаг Makefile и --recreate
.