带有模式命令的Python Tox Deps

时间:2019-03-20 17:14:18

标签: python unit-testing tox

我正在使用tox进行测试。目前,我的tox.ini定义了几个命令:

commands =
    unit-a: py.test --cov mypackage mypackage/tests/unit/a []
    unit-b: py.test --cov mypackage mypackage/tests/unit/b []
    func: python -m behave -n "{env:SCENARIO}"

它还定义了每个命令的依赖性:

deps =
    unit-a: mock
    unit-a: pytest==3.9.3
    unit-a: pytest-cov
    unit-a: pytest-sugar
    unit-b: mock
    unit-b: pytest==3.9.3
    unit-b: pytest-cov
    unit-b: pytest-sugar
    func: behave

这对我来说既笨拙又多余。是否可以使用命令的模式指定deps?例如,

deps =
    unit-*: mock
    unit-*: pytest==3.9.3
    unit-*: pytest-cov
    unit-*: pytest-sugar
    func: behave

这是尝试时遇到的错误:

ERROR: invocation failed (exit code 1), logfile: /app/.tox/py3-unit-a/log/py3-unit-a.log
ERROR: actionid: py3-unit-a
msg: getenv
cmdargs: "/app/.tox/py3-unit-a/bin/pip install --progress-bar off --index-url=https://pypi.org/simple 'unit-*: mock' 'unit-*: pytest==3.9.3' 'unit-*: pytest-cov' 'unit-*: pytest-sugar'"

Invalid requirement: 'unit-*: mock'

1 个答案:

答案 0 :(得分:1)

您可以简单地做:

deps =
    unit: mock pytest==3.9.3 pytest-cov pytest-sugar
    func: behave

使用unit:的第一行有效是因为tox的{​​{1}} splits factors

您也可以尝试取反:

-