Как изменить максимальное количество тестовых случаев, сгенерированных гипотезой?

Знаменитая гипотеза среды тестирования на основе свойств способна генерировать массивные тестовые примеры.

Но есть ли способ ограничить количество тестовых случаев, генерируемых гипотезой, чтобы сократить период тестирования?

Например, передать определенный аргумент ключевого слова декоратору @given?


person Audra Jacot    schedule 19.04.2020    source источник


Ответы (1)


Это зависит от того, хотите ли вы ограничить для одного теста или для всех, но подход аналогичен и основан на настройки.

Настройка одиночного теста

Чтобы изменить поведение по умолчанию для некоторых тестов, мы можем украсить их settings object< /а> нравится

from hypothesis import given, settings, strategies


@given(strategies.integers())
@settings(max_examples=10)
def test_this_a_little(x):
    ...


@given(strategies.integers())
@settings(max_examples=1000)
def test_this_many_times(x):
    ...

для test_this_a_little будет сгенерировано 10 примеров (максимум), а для test_this_many_times будет 1000.

Настройка всех тестов

Чтобы изменить поведение по умолчанию для всех тестов во время загрузки вашего тестового прогона (например, для pytest это может быть conftest.py module), мы можем определить собственный профиль настроек hypothesis и затем использовать его во время запуска тестов, например

from hypothesis import settings

settings.register_profile('my-profile-name',
                          max_examples=10)

и после этого (при условии, что вы используете pytest)

> pytest --hypothesis-profile=my-profile-name

дальнейшее чтение

hypothesis довольно крут и позволяет нам настраивать многие вещи, доступные параметры перечислены в документах.

person Azat Ibrakov    schedule 19.04.2020