Auto-chose platform (or other) condition in tox sections(在 tox 部分自动选择平台(或其他)条件)
问题描述
我想专门运行某个 tox 部分,然后在特定平台上自动决定.如果我只运行 tox -e ALL
,下面的示例代码片段可以正常工作.然后平台条件很好地划分出正确的平台.
I want to specifically run a certain tox section which then auto-decides on the specific platform.
The example code-snippet below works fine if I just ran tox -e ALL
. Then the platform condition nicely sects out the correct platform.
但是,我想仅处理并运行特定部分,例如 tox -e other
(而不是 tox -e other-win,other-linux
) 然后让 tox
自动选择相应的平台(或任何其他)条件.
However, I want to only adress and run a specific section like for instance something like tox -e other
(not tox -e other-win, other-linux
) and then have tox
auto-chosing the corresponding platform (or any other) condition.
我不知道这种在 tox
中设置条件的方式是不是不可能,还是我遗漏了什么.
I don't know if this way of setting up conditions in tox
is not possible, or if I'm missing something.
[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}
推荐答案
你可以给 tox-factor
插件试一试.
You could give the tox-factor
plugin a try.
例如:
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
这给出了以下四种环境:
This gives the following four environments:
$ 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 平台上):
And then run like this (for example on a Linux platform):
$ 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 :)
参考文献:
- https://github.com/tox-dev/tox/issues/1338
- https://pypi.org/project/tox-factor/李>
这篇关于在 tox 部分自动选择平台(或其他)条件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 tox 部分自动选择平台(或其他)条件


基础教程推荐
- 修改列表中的数据帧不起作用 2022-01-01
- Plotly:如何设置绘图图形的样式,使其不显示缺失日期的间隙? 2022-01-01
- 在Python中从Azure BLOB存储中读取文件 2022-01-01
- PANDA VALUE_COUNTS包含GROUP BY之前的所有值 2022-01-01
- 求两个直方图的卷积 2022-01-01
- 在同一图形上绘制Bokeh的烛台和音量条 2022-01-01
- 使用大型矩阵时禁止 Pycharm 输出中的自动换行符 2022-01-01
- 无法导入 Pytorch [WinError 126] 找不到指定的模块 2022-01-01
- 包装空间模型 2022-01-01
- PermissionError: pip 从 8.1.1 升级到 8.1.2 2022-01-01