Как увидеть вывод библиотеки гипотез 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