在使用假设库并执行单元测试时,我如何查看该库在我的代码上尝试了哪些实例?
例子
from hypothesis import given
import hypothesis.strategies as st
@given(st.integers())
def silly_example(some_number):
assert some_number > 0
问题是:如何打印/查看some_number
库生成的变量?
在使用假设库并执行单元测试时,我如何查看该库在我的代码上尝试了哪些实例?
例子
from hypothesis import given
import hypothesis.strategies as st
@given(st.integers())
def silly_example(some_number):
assert some_number > 0
问题是:如何打印/查看some_number
库生成的变量?
请参见此处-note
函数 and--hypothesis-verbosity=verbose
或event
函数 and--hypothesis-show-statistics
应该可以解决问题。
您可以在以下内容之前放置一个打印语句或日志记录语句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
将不再发出记录。
--hypothesis-verbosity=debug 有助于查看输出。
--hypothesis-verbosity=debug 和 --hypothesis-verbosity=verbose 都对我有用 - 但我必须让 pytest 也不要捕获输出,前面带有 -s 。看起来像这样:
python -m pytest -s --hypothesis-verbosity=debug tests