I want to perform several operations while working on a specified virtualenv.
For example command
make install
would be equivalent
I like using something that runs only when requirements.txt changes:
This assumes that source files are under project in your project's root directory and that tests are under project/test. (You should change project to match your actually project name.)
venv: venv/touchfile
venv/touchfile: requirements.txt
test -d venv || virtualenv venv
. venv/bin/activate; pip install -Ur requirements.txt
touch venv/touchfile
test: venv
. venv/bin/activate; nosetests project/test
clean:
rm -rf venv
find -iname "*.pyc" -delete
make to install packages in requirements.txt.make test to run your tests (you can update this command if your tests are somewhere else).make clean to delete all artifacts.