gpt4 book ai didi

pytest - 所有环境的 tox 默认依赖项

转载 作者:行者123 更新时间:2023-12-04 16:45:39 26 4
gpt4 key购买 nike

我有一个 tox.ini 文件,想在不同的 django 版本上进行测试:

[tox]
envlist =
py27-django16-{[base]deps]
py32-django16-{[base]deps]
py27-django17-{[base]deps]
py32-django17-{[base]deps]

[base]
deps =
nose

[testenv]
commands =
{envpython} setup.py nosetests
basepython =
py27: python2.7
py32: python3.2

deps =
django16: Django>=1.6,<1.7
django17: Django>=1.7,<1.8

但它不起作用并引发异常 invalid command 'nosetests' ,我认为是因为没有安装 Nose 。

最佳答案

您的 tox.ini有两个问题:

第一:envlist中生成的环境名

(tox@3.5.2) 17:26:11 oliver@ob1 [1] < ~/work/tox/tests >  1744 %
tox -l
py27-django16-{[base]deps]
py32-django16-{[base]deps]
py27-django17-{[base]deps]
py32-django17-{[base]deps]

如您所见,由于大括号未关闭,因此您的条目没有任何处理。但即使他们被关闭,替换也不会发生,因为对 deps 的推荐不属于那里。您想说的为您的需求生成正确的环境如下所示(如果我猜对了您的意图 - 否则请在评论中澄清):
envlist = {py27,py32}-django{16,17}

这会生成这些环境名称:
(tox@3.5.2) 17:26:20 oliver@ob1 [0] < ~/work/tox/tests >  1745 %
tox -l
py27-django16
py27-django17
py32-django16
py32-django17

然后,您可以使用这些因素(例如 py27django16 )来指定在您已经正确执行时必须发生的事情。很难理解这个概念,但这可能会让你开始。也看看 docs about this feature - IMO 他们解释得很好。

主要问题是您需要在需要它们的地方引用 deps - 在您的 testenv 的 deps 条目中 tox configuration specification 中概述的部分.

一个最小的工作示例是:
[base]
deps = nose

[testenv]
deps = {[base]deps} # <-- reference your base deps here
commands = pip freeze

适配 tox.ini从你的问题现在看起来像:
[tox]
envlist = {py27,py32}-django{16,17}

[base]
deps = nose

[testenv]
commands = {envpython} setup.py nosetests
basepython =
py27: python2.7
py32: python3.2
deps =
{[base]deps}
django16: Django>=1.6,<1.7
django17: Django>=1.7,<1.8

但就您而言 - 当您只想在所有环境中安装它时,您甚至不需要绕过 [base]部分。所以推荐 tox.ini在你的情况下将是:
[tox]
envlist = {py27,py32}-django{16,17}

[testenv]
basepython =
py27: python2.7
py32: python3.2
deps =
nose # just add the dep here unconditionally for all envs
django16: Django>=1.6,<1.7
django17: Django>=1.7,<1.8
commands = {envpython} setup.py nosetests

关于pytest - 所有环境的 tox 默认依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41364496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com