我有一套小型测试,总共要花40秒钟,而我有一套中等测试,总共要花40分钟。

我希望命令像这样运行:


py27小测试
py37小测试
py27中等测试
py37中等测试


相反,tox像


py27小测试
py27中等测试
py37小测试
py37中等测试


问题是,如果一些简单的事情打破了一个小的测试,我想立即知道。中级测试(例如集成测试)是额外的安全层,可以冒出更多的问题,但需要更长的时间来运行。

[tox]
envlist = py27,py37
[testenv:py27]
deps =
    pytest
    pytest-cov
    pytest-mock
    pylint
    ; packages specified by the setup.py cover the other dependencies for py2.7
commands =
    pytest -v --ignore-glob="*medium*" --doctest-modules
    pytest -v tests/medium_tests

最佳答案

我不是毒理专家,但类似的方法可能会有所帮助:

[tox]
envlist = {s,m}-{py27,py37}

[testenv]
deps =
    pytest
commands =
    s: pytest -v -k 'not medium'
    m: pytest -v -k 'medium'


您的所有简短测试命令都应带有前缀s:,所有中等测试命令都应带有前缀m:
重要的是环境列表{s,m}-{py27,py37}将按此顺序遍历s-py27s-py37m-py27m-py37

10-05 22:53