如何查看Python的假设库的输出

How to see the output of Python's hypothesis library

在使用 hypothesis 库并执行单元测试时,我如何才能看到该库正在对我的代码进行哪些实例测试?

示例

from hypothesis import given
import hypothesis.strategies as st

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

问题是:如何打印/查看库生成的 some_number 变量?

您可以在 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 将不再发出记录。

See here - note 函数和 --hypothesis-verbosity=verbose,或者 event 函数和 --hypothesis-show-statistics 应该可以解决问题。

--hypothesis-verbosity=debug 有助于查看输出。

--hypothesis-verbosity=debug 和 --hypothesis-verbosity=verbose 都对我有用 - 但我必须让 pytest 也不要捕获输出,前面有 -s。看起来像这样:

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