Вы можете ограничить количество тестов разными способами. Например, вы можете выполнить один тест, передав его полное имя в качестве параметра:
$ 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