我正在尝试使用Tox来测试Python和Django的特定版本,但还包括一个用于所有情况的附加依赖项的一般Pip需求文件。
正如Tox docs解释的那样,你首先做的是:
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
然后你会做第二次:
deps = -r{toxinidir}/pip-requirements.txt
-r{toxinidir}/pip-requirements-test.txt
但你如何结合这些?
如果我尝试定义多个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
虽然这不会给我任何解析错误,但当我去运行测试时,我收到错误:
错误:py27-django15:无法安装deps [-r / usr / local / myproject / pip-requirements.txt,-r / usr / local / myproject / pip-requirements-test.txt,Django&gt; = 1.5 ,&LT; 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&gt; = 1.5,&lt; 1.6(见/usr/local/myproject/.tox/py27-django15/log/py27-django15-1.log)',1)
大概是因为它将需求文件解释为文字Python包名。