Можно ли в токсине пробежать сначала ширину, а не глубину? - PullRequest
1 голос
/ 18 мая 2019

У меня есть набор небольших тестов, которые в общей сложности занимают около 40 секунд, и у меня есть набор средних тестов, которые в общей сложности занимают около 40 минут.

Я бы с удовольствием заказалзапустите так:

  1. py27 маленьких тестов
  2. py37 маленьких тестов
  3. py27 средних тестов
  4. py37 средних тестов

Вместо этого tox запускает его как

  1. py27 маленьких тестов
  2. py27 средних тестов
  3. py37 маленьких тестов
  4. 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 

1 Ответ

2 голосов
/ 02 июня 2019

Я не эксперт по токсикам, но что-то вроде этого может помочь:

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

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

Все ваши короткие тестовые команды должны иметь префикс s:, а все средние тестовые команды имеют префикс m: Важным является список env {s,m}-{py27,py37}, который будет проходить через s-py27, s-py37, m-py27, m-py37 в этом порядке.

...