【问题标题】:Auto-chose platform (or other) condition in tox sections在 tox 部分自动选择平台(或其他)条件
【发布时间】:2020-06-16 15:45:11
【问题描述】:

我想专门运行某个 tox 部分,然后在特定平台上自动决定。 如果我只是运行tox -e ALL,下面的示例代码-sn-p 可以正常工作。然后平台条件很好地划分出正确的平台。

但是,我想仅处理并运行特定部分,例如 tox -e other(不是 tox -e other-win, other-linux),然后让 tox 自动选择相应的平台(或任何其他)条件。

我不知道这种在tox 中设置条件的方式是否可行,或者我是否遗漏了什么。

[tox]
skipsdist = true

[testenv:systest-{win, linux}]
platform =
    linux: linux
    win: win|msys

whitelist_externals = 
    win: cmd
    linux: sh

commands =
    win: cmd /r echo {env:OS}
    linux: sh -c echo {env:OS}

[testenv:other-{win, linux}]
platform =
    linux: linux
    win: win|msys

whitelist_externals = 
    win: cmd
    linux: sh

commands =
    win: cmd /r echo {env:OS}
    linux: sh -c echo {env:OS}

【问题讨论】:

    标签: python continuous-integration automated-tests tox


    【解决方案1】:

    你可以试试tox-factor plugin。

    例如:

    tox.ini

    [tox]
    envlist =
        alpha-{redmond,tux}
        bravo-{redmond,tux}
    requires =
        tox-factor
    skipsdist = true
    
    [testenv]
    commands =
        python -c 'import sys; print("platform", sys.platform)'
    platform =
        redmond: win32
        tux: linux
    

    这给出了以下四种环境:

    $ tox --listenvs
    alpha-redmond
    alpha-tux
    bravo-redmond
    bravo-tux
    

    可以根据因素来选择:

    $ tox --listenvs --factor tux
    alpha-tux
    bravo-tux
    $ tox --listenvs --factor alpha
    alpha-redmond
    alpha-tux
    

    然后像这样运行(例如在 Linux 平台上):

    $ tox --factor bravo
    bravo-tux run-test-pre: PYTHONHASHSEED='1770792708'
    bravo-tux run-test: commands[0] | python -c 'import sys; print("platform", sys.platform)'
    platform linux
    ________________________________________________ summary ________________________________________________
    SKIPPED:  bravo-redmond: platform mismatch ('linux' does not match 'win32')
      bravo-tux: commands succeeded
      congratulations :)
    

    参考文献:

    【讨论】:

    • 是的,就是这样。做工很棒。谢谢!
    猜你喜欢
    • 2020-11-19
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多