问题标签 [python-hypothesis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 状态测试中途放弃,从头开始
我正在使用假设的状态测试功能编写测试。
我发现在一定数量的状态更改后,测试会从头开始。
我怎样才能让它沿着现有的路径继续?
我已经设置了max_examples=1
,stateful_step_count=999999
但这似乎没有帮助。
python - 假设似乎不尊重 pytest 的 maxfail 论点
尽管指定maxfail=1
,假设似乎继续生成示例并运行它们并且在很晚之后失败。
有解决方法吗?
这是一个小例子:
python - 使用基于属性的测试断言值错误
我有一个返回数字除数的函数num
。如果 number 为 ,该函数将引发错误negative
。
我正在使用假设库来测试这个函数,但我不确定如何使它成为基于属性的测试。
这是我的测试:
此代码有效,但我如何更改它以使参数为“num”而不是硬编码。同样,对于任何数字 num,我如何断言一个是集合的一个元素。
python - 给定序列的子序列/切片的策略(子列表/子元组/子字符串/等)
如何为给定序列的子序列编写策略?
例如给定一个list
我要策略
这会产生
结合strategies.lists
&strategies.sampled_from
的简单方法
不起作用,因为它没有考虑原始元素的数量。
python-hypothesis - 生成多个 kwargs 的假设策略
用 3 个单独的 numpy 数组来编写我的测试是很自然的,但是每个 numpy 数组的第一个维度必须是相等的长度。作为一个黑客,我可以简单地要求一个更大的 numpy 数组
但这掩盖了我真正想要生成的内容,并且无法对每个数组的元素制定单独的策略。有没有办法在保持对第一维大小的约束的同时生成这些数组?我想我会想要类似的东西
python - 如何在假设数据框中实现依赖列
我正在使用假设数据框来实现一个数据框,其中 start_time 和 end_time 是两列。这是一个大块:
我无法找到一个解决方案来断言每个 start_time 应该大于其相应的 end_time 至少 delta。我已经尝试过composite
了,但我不确定如何在dataframes
.
有没有办法在初始化 start_time 和 end_time 时强制执行增量作为规则?
python - 是否可以从带类型注释的类中生成用于测试的对象?
我最近看了一下假设并像这样使用它:
这很酷。我看到的主要限制是策略(例如s.integers
),尽管有很多策略,我仍在学习有哪些策略/如何正确使用它们。
给定使用 pydantic 的类型注释类,是否有生成对象的策略?
我的尝试
当我将其另存为test_foo.py
并执行pytest
时,我得到:
如果假设产生一个没有中间名的人和一个有中间名的人,我会特别喜欢。
python - 如何使用 Hypothesis 的复合策略执行 Python 函数?
我正在尝试执行一个用Hypothesis装饰器装饰的函数@strategy.composite
。
我知道我可以使用@given
装饰器测试功能,例如 -
使用pytest - pytest <filename.py>
。
但是对于带有@strategy.composite
装饰器的功能,例如-
我无法以类似的方式执行测试。
使用 pytest 时,我无法执行测试(使用python
执行 python 文件什么也不做) -
我尝试添加函数调用test_foo()
,但我得到了同样的错误。
然后我尝试@given
在函数上方添加并得到一个不同的错误 -
如果我这样做@given()
- 请注意额外的大括号,相反,我会收到另一个错误 -
我尝试将代码包装在另一个函数中 -
但这也不起作用-
(我也尝试将demo
函数调用放在文件末尾,但这并没有以任何方式改变测试行为)
假设快速入门指南说调用该函数会起作用,但显然不起作用。(公平地说,文档没有指定如何使用 运行测试@composite
)
如何测试用 装饰的功能@strategy.composite
?我不必使用 pytest - 我宁愿不必实际使用它,但它似乎是测试功能(用 装饰@given
)最简单的方法,所以我决定走那条路。
python - 使用假设测试 Python 函数引发错误
有没有办法使用Hypothesis来检查 Python 函数在将一组特定的参数传递给它时是否引发错误?True
如在,如果函数失败并且不使测试执行停止并且函数标记为失败,我希望断言是。
python-hypothesis - 我可以列出假设策略生成的对象吗?
hypothesis
有很多策略,我仍在努力理解它们。看看它们产生了哪些价值对我有很大帮助。那可能吗?
MVCE
hypothesis==5.18.3
和pydantic==1.5.1
:_
如您所见,我目前弄清楚假设在做什么的方法是手动将其添加到此seen
列表中。有没有办法将策略用作生成器/生成策略测试的值列表?