7

在使用假设库并执行单元测试时,我如何查看该库在我的代码上尝试了哪些实例?

例子

from hypothesis import given
import hypothesis.strategies as st

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

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

4

4 回答 4

6

请参见此处-note函数 and--hypothesis-verbosity=verboseevent函数 and--hypothesis-show-statistics应该可以解决问题。

于 2018-11-01T13:22:58.220 回答
2

您可以在以下内容之前放置一个打印语句或日志记录语句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.DEBUGlogging.INFO

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

然后logger.debug将不再发出记录。

于 2018-10-30T20:34:57.717 回答
0

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

于 2019-09-16T10:55:14.717 回答
0

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

python -m pytest -s --hypothesis-verbosity=debug tests
于 2021-09-29T09:11:17.470 回答