Как увидеть вывод библиотеки гипотез Python

При использовании библиотеки гипотез и выполнении модульного тестирования, как я могу увидеть, какие экземпляры библиотека пытается в моем коде?

пример

from hypothesis import given
import hypothesis.strategies as st

@given(st.integers())
def silly_example(some_number):
    assert some_number > 0

Вопрос: как мне распечатать / посмотреть some_number переменная, генерируемая библиотекой?

4 ответа

Решение

Вы можете поместить оператор печати или оператор регистрации перед assert:

import logging
from hypothesis import given
import hypothesis.strategies as st

log_filename = 'debug.log'
logging.basicConfig(filename=log_filename, level=logging.DEBUG)
logger = logging.getLogger(__name__)

@given(st.integers())
def silly_example(some_number):
    logger.debug('silly_example(%s) called', some_number)
    assert some_number > 0

Используя ведение журнала вместо операторов печати, вы можете отключить все ведение журнала, просто изменив уровень ведения журнала. Если вы измените logging.DEBUG в logging.INFO:

logging.basicConfig(filename=log_filename, level=logging.INFO)

затем logger.debug больше не будет излучать записи.

Смотри здесь - либо note функция и --hypothesis-verbosity=verbose, или event функция и --hypothesis-show-statistics должен сделать свое дело.

--hypothesis-verbosity = debug и --hypothesis-verbosity = verbose оба работают для меня, но мне нужно получить pytest, чтобы также не захватывать вывод, с -s впереди. Выглядит так:

      python -m pytest -s --hypothesis-verbosity=debug tests

--hypothesis-verbosity=debug помогает увидеть результат.

Другие вопросы по тегам