以前は、次のような 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'
これには、requirements_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
フラグが含まれます。