繁体   English   中英

如何指定在 tox 中使用哪个位置参数?

[英]How can I specify which positional argument to use in tox?

我有以下 tox.ini:

[tox]
envlist = py37-{lint, test}

[testenv:py37-{lint, test}]
envdir = {toxworkdir}/lint_and_test_env
deps = 
    pylint
    pytest
    pytest-xdist
commands =
    lint: pylint src {posargs}
    test: pytest tests {posargs}

我想并行运行两个环境,并为 pylint 指定--jobs=4 ,为 pytest 指定-n auto 。执行tox -p -- --jobs=4 -n auto失败,因为 pylint 无法识别 -n 参数,反之亦然反之亦然。

有没有办法实现我的目标?

我看不出有什么办法可以做你想做的。

也就是说,我强烈建议您拆分环境,一个用于测试,一个用于 linting。

[tox]
envlist = py37, lint

[testenv]
deps =
    pytest
    pytest-xdist
commands =
    pytest tests {posargs}

[testenv:lint]
deps = pylint
commands = pylint src {posargs}

然后你可以将不同的 arguments 传递给命令,或者通过tox运行所有环境。

如果您不指定{posargs} ,您也可以设置默认值。

例如

[testenv:lint]
deps = pylint
commands = pylint src {--jobs=4:posargs}

如果你想并行运行所有tox环境,你可以运行......

tox -p

PS:我是tox的维护者之一,我已经为数百个开源项目做出了贡献,并且基本上 99% 使用单独的 envs 进行测试和 linting。

PPS:如果你想运行多个 linter,你应该看看pre-commit

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM