【发布时间】:2019-07-08 03:05:19
【问题描述】:
我正在运行一个带有假设 4.24.6 和 pytest-5.0.0 的测试套件。我的测试有一组有限的可能输入,但假设永远不会完成测试。
我已将其简化为以下最小示例,我以 pytest test.py 运行它
from hypothesis import given
import hypothesis.strategies as st
@given(x=st.just(0)
| st.just(1),
y=st.just(0)
| st.just(1)
| st.just(2))
def test_x_y(x, y):
assert True
我希望它在这里尝试所有六种组合然后成功。或者可能是其中的一小部分以检查片状。相反,它会无限期地运行,(经过大约 15 分钟的测试,我将其杀死。)
如果我中断测试,回溯似乎表明它只是不断生成新示例。
我在这里做错了什么?
【问题讨论】:
-
这显然是在 4.10 版本中首次出现的回归。在 4.9 版本中,测试在 0.12 秒内通过,而在 4.10 及更高版本中,测试不会在超过 1 分钟后停止。我会创建一个new issue,或者召唤Zac Hatfield-Dodds 并询问他。
-
我还在研究这个,但这显然是一个错误!未来详情将发布在github.com/HypothesisWorks/hypothesis/issues/2027
标签: python pytest python-hypothesis