Ограничить количество тестов, которые будут выполнены в pytest - PullRequest
1 голос
/ 21 июня 2019

немного фона

  • Я выполняю свои тестовые задания с Дженкинсом, сейчас я делаю небольшой POC с Дженкинсом.
  • И, в моем случае, есть более 500 тестовых случаев, выполнение которых занимает час.
  • Я хочу, чтобы был выполнен только один тестовый пример, чтобы знать, что я не допустил ошибок при выполнении моего POC Дженкинса.

Есть ли способ ограничить количество тестов, которые будут выполнены? что-то вроде ..

  pytest -vv --limit 1

или

с использованием conftest.py?

1 Ответ

1 голос
/ 21 июня 2019

Вы можете ограничить количество тестов разными способами. Например, вы можете выполнить один тест, передав его полное имя в качестве параметра:

$ pytest tests/test_spam.py::TestEggs::test_bacon

будет запускать только метод теста test_bacon в классе TestEggs в модуле tests/test_spam.py.

Если вы не знаете точного названия теста, вы можете узнать его, выполнив

$ pytest --collect-only -q

Вы можете объединить обе команды для выполнения ограниченного количества тестов:

$ pytest -q --collect-only 2>&1 | head -n N | xargs pytest -sv

выполнит первые N собранные тесты.

Вы также можете реализовать аргумент --limit самостоятельно, если хотите. Пример:

def pytest_addoption(parser):
    parser.addoption('--limit', action='store', default=-1, type=int, help='tests limit')


def pytest_collection_modifyitems(session, config, items):
    limit = config.getoption('--limit')
    if limit >= 0:
        items[:] = items[:limit]

Теперь указанная выше команда становится равной

$ pytest --limit N
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...