How can tox install the modules via the requirements file?

Question:

Our python project has a requirements.txt file which lists some dependent module. We used to use

pip install -r requirements.txt

to install these dependencies. We are now using tox to build up the test environment. My question is that how can we install the modules via requirements.txt directly.

Followings are our tox.ini and requirements.txt:

tox.ini:

[tox]
envlist=py27
[testenv]
deps=pytest
     boto
commands=py.test

rquirements.txt:

boto

Is any way to remove the “boto” from tox.ini and add something like

deps_files=requirements.txt
Asked By: waitingkuo

||

Answers:

 deps = -r{toxinidir}/tools/pip-requires
        -r{toxinidir}/tools/test-requires
Answered By: Denis

What helped me is the following (the other solution didn’t work for me):

deps=
    pytest
    -rrequirements.txt

This works at least if you add requirements.txt to MANIFEST.in and if you use a relatively new `tox (>= 1.6.1) version (see here).

Answered By: Dave Halter

I had already setup my dependencies as in the accepted answer above, however any new dependencies were not installed like they are when tox is run for the first time. To install new dependencies in the virtualenv I had to force tox to recreate the environment like so:

tox --recreate -e py27

[UPDATE: this issue should be fixed in tox v4]

Answered By: jfunk

You can put dependencies and test dependencies in requirements.txt and requirements.testing.txt in order to the root directory.

Put tox.ini in your root directory of your project and you can use the approach below to install dependencies.

[testenv] deps = -r{tox_ini_dir}/requirements.txt -r{tox_ini_dir}/requirements.testing.txt

In addition to upgrade dependencies

[testenv] deps = -Ur{tox_ini_dir}/requirements.txt -Ur{tox_ini_dir}/requirements.testing.txt

Answered By: abdullahselek
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.