【问题标题】:Is it possible to allow multiple testenv labels with the same script?是否可以使用相同的脚本允许多个 testenv 标签?
【发布时间】:2018-01-17 10:01:19
【问题描述】:

目前我们有多个toxenv,这只是一个简单的复制+粘贴代码:

https://github.com/nltk/nltk/blob/alvations-test-tox/tox.ini

[testenv:py2.7.14-jenkins]
basepython = python
commands = {toxinidir}/jenkins.sh
setenv =
    STANFORD_MODELS = {homedir}/third/stanford-parser/
    STANFORD_PARSER = {homedir}/third/stanford-parser/
    STANFORD_POSTAGGER = {homedir}/third/stanford-postagger/


[testenv:py3.5.4-jenkins]
basepython = python3
commands = {toxinidir}/jenkins.sh
setenv =
    STANFORD_MODELS = {homedir}/third/stanford-parser/
    STANFORD_PARSER = {homedir}/third/stanford-parser/
    STANFORD_POSTAGGER = {homedir}/third/stanford-postagger/

[testenv:py3.6.4-jenkins]
basepython = python3
commands = {toxinidir}/jenkins.sh
setenv =
    STANFORD_MODELS = {homedir}/third/stanford-parser/
    STANFORD_PARSER = {homedir}/third/stanford-parser/
    STANFORD_POSTAGGER = {homedir}/third/stanford-postagger/

有没有办法将多个标签分配给同一个toxenv

例如

[testenv:py3.6.4-jenkins,py3.5.4-jenkins,py3-jenkins]
basepython = python3
commands = {toxinidir}/jenkins.sh
setenv =
    STANFORD_MODELS = {homedir}/third/stanford-parser/
    STANFORD_PARSER = {homedir}/third/stanford-parser/
    STANFORD_POSTAGGER = {homedir}/third/stanford-postagger/

【问题讨论】:

    标签: python jenkins continuous-integration tox


    【解决方案1】:

    不,但您可以通过以下方式重构您的 tox.ini

    [testenv]
    commands = {toxinidir}/jenkins.sh
    setenv =
        STANFORD_MODELS = {homedir}/third/stanford-parser/
        STANFORD_PARSER = {homedir}/third/stanford-parser/
        STANFORD_POSTAGGER = {homedir}/third/stanford-postagger/
    
    [testenv:py2.7.4-jenkins]
    basepython = python
    
    [testenv:py3-jenkins]
    basepython = python3
    
    [testenv:py3.5.4-jenkins]
    basepython = {[testenv:py3-jenkins]basepython}
    
    [testenv:py3.6.4-jenkins]
    basepython = {[testenv:py3-jenkins]basepython}
    

    [testenv] 定义了所有部分通用的变量。

    【讨论】:

    • 快速提问,你能从不是testenv 的其他环境“继承”吗?例如。 [testenv:py27-jenkins] 然后[py27-jenkins:py2.7.14-jenkins]
    • [testenv] 的“继承”是自动的,为所有其他测试环境提供默认值。您必须明确命名所有其他部分,但是是的,这是可能的。例如,in this tox.ini 我定义了[tests] 部分并在所有其他环境中使用{[tests]commands}
    • 谢谢!示例 tox.ini 正是我正在寻找的东西!
    猜你喜欢
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    相关资源
    最近更新 更多