[英]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.