如何将per-env Tox deps与Pip需求文件结合起来?

Cer*_*rin 7 python django unit-testing tox python-unittest

我正在尝试使用Tox来测试Python和Django的特定版本,但还包括一个通用的Pip需求文件,其中包含用于所有情况的其他依赖项.

正如Tox文档解释的那样,你做的第一个就是:

deps =
    django15: Django>=1.5,<1.6
    django16: Django>=1.6,<1.7
    py33-mysql: PyMySQL     ; use if both py33 and mysql are in an env name
    py26,py27: urllib3      ; use if any of py26 or py27 are in an env name
    py{26,27}-sqlite: mock  ; mocking sqlite in python 2.x
Run Code Online (Sandbox Code Playgroud)

而你做第二个像:

deps = -r{toxinidir}/pip-requirements.txt
       -r{toxinidir}/pip-requirements-test.txt
Run Code Online (Sandbox Code Playgroud)

但是你如何结合这些?

如果我尝试定义多个deps,Tox会给出错误"重复名称'deps'",但我没有看到将字典和列表标记组合为deps的方法.

我也尝试过:

deps =
    -r{toxinidir}/pip-requirements.txt
    -r{toxinidir}/pip-requirements-test.txt
    django15: Django>=1.5,<1.6
    django16: Django>=1.6,<1.7
Run Code Online (Sandbox Code Playgroud)

虽然这不会给我任何解析错误,但当我去运行测试时,我得到错误:

错误:py27-django15:无法安装deps [-r/usr/local/myproject/pip-requirements.txt,-r/usr/local/myproject/pip-requirements-test.txt,Django> = 1.5,<1.6 ].v = InvocationError('/ usr/local/myproject/.tox/py27-django15/bin/pip install -r/usr/local/myproject/pip-requirements.txt -r/usr/local/myproject/pip-requirements- test.txt Django> = 1.5,<1.6(参见/usr/local/myproject/.tox/py27-django15/log/py27-django15-1.log)',1)

大概是因为它将需求文件解释为文字Python包名称.