gpt4 book ai didi

python - 如何最大程度地减少 tox 文件中的重复

转载 作者:太空宇宙 更新时间:2023-11-03 11:43:26 26 4
gpt4 key购买 nike

目标:成功执行特定的 tox 命令,并让它“仅”针对特定的匹配命令运行。

示例:tox -e py35-integration

tox 应该只针对 py35 集成运行,包括默认 或独立的 py35 定义。

我尝试了两种不同的方法,据我所知,这是两种尝试做我想做的事情的方法。

  • 请注意 flake8 命令可轻松隔离不同的命令并向我指示正在运行的命令。这并不表示我真正要运行的命令。

此外,ini 文件只显示相关部分。

第一种方法

[tox]
envlist = {py27,py35}, {py27,py35}-integration

[testenv]
commands =
py27: python -m testtools.run discover
py35: python -m testtools.run discover
py27-integration: flake8 {posargs}
py35-integration: flake8 {posargs}

通过这种方法,这里的理解是我希望运行 tox -e py27-integration,而不运行为 py27 命令定义的内容。这不是正在发生的事情。相反,它将同时运行 py27py27-integration

第二种方法

[tox]
envlist = {py27,py35}, {py27,py35}-integration

[testenv]
commands =
python -m testtools.run discover

[testenv:integration]
commands =
flake8 {posargs}

现在,我在这里明确隔离了一个“子”环境,它有自己的命令来运行“集成”。

但是,不幸的是,我遇到了与正在执行的“py27”的所有匹配模式完全相同的行为。

我试图避免重复 testenv 结构,如:[testenv:py27-integration][testenv:py35-integration],它们包含完全相同的定义(目标是尽量减少重复)。

我很想知道是否有一种方法可以实现我想要做的事情。

我不想冒险做像 p27-integration 这样的事情作为替代命名方案,因为我们的 CI 管道有模板需要特定的名称结构,并且这些名称对于 tox 来说也是惯用的,在例如,py27 被理解为安装 2.7 虚拟环境。

最佳答案

已更新

[tox]
minversion = 3.15
envlist = {py27,py35}, {py27,py35}-integration

[testenv]
commands =
python -m testtools.run discover

[testenv:py{27,35}-integration]
commands =
flake8 {posargs}

关于python - 如何最大程度地减少 tox 文件中的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44849794/

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