问题标签 [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.

0 投票
1 回答
32 浏览

python - 状态测试中途放弃,从头开始

我正在使用假设的状态测试功能编写测试。

我发现在一定数量的状态更改后,测试会从头开始。

我怎样才能让它沿着现有的路径继续?

我已经设置了max_examples=1stateful_step_count=999999但这似乎没有帮助。

0 投票
1 回答
128 浏览

python - 假设似乎不尊重 pytest 的 maxfail 论点

尽管指定maxfail=1,假设似乎继续生成示例并运行它们并且在很晚之后失败。

有解决方法吗?

这是一个小例子:

0 投票
2 回答
140 浏览

python - 使用基于属性的测试断言值错误

我有一个返回数字除数的函数num。如果 number 为 ,该函数将引发错误negative
我正在使用假设库来测试这个函数,但我不确定如何使它成为基于属性的测试。

这是我的测试:

此代码有效,但我如何更改它以使参数为“num”而不是硬编码。同样,对于任何数字 num,我如何断言一个是集合的一个元素。

0 投票
1 回答
81 浏览

python - 给定序列的子序列/切片的策略(子列表/子元组/子字符串/等)

如何为给定序列的子序列编写策略?

例如给定一个list

我要策略

这会产生

结合strategies.lists&strategies.sampled_from的简单方法

不起作用,因为它没有考虑原始元素的数量。

0 投票
1 回答
82 浏览

python-hypothesis - 生成多个 kwargs 的假设策略

用 3 个单独的 numpy 数组来编写我的测试是很自然的,但是每个 numpy 数组的第一个维度必须是相等的长度。作为一个黑客,我可以简单地要求一个更大的 numpy 数组

但这掩盖了我真正想要生成的内容,并且无法对每个数组的元素制定单独的策略。有没有办法在保持对第一维大小的约束的同时生成这些数组?我想我会想要类似的东西

0 投票
1 回答
161 浏览

python - 如何在假设数据框中实现依赖列

我正在使用假设数据框来实现一个数据框,其中 start_time 和 end_time 是两列。这是一个大块:

我无法找到一个解决方案来断言每个 start_time 应该大于其相应的 end_time 至少 delta。我已经尝试过composite了,但我不确定如何在dataframes.

有没有办法在初始化 start_time 和 end_time 时强制执行增量作为规则?

0 投票
1 回答
510 浏览

python - 是否可以从带类型注释的类中生成用于测试的对象?

我最近看了一下假设并像这样使用它:

这很酷。我看到的主要限制是策略(例如s.integers),尽管有很多策略,我仍在学习有哪些策略/如何正确使用它们。

给定使用 pydantic 的类型注释类,是否有生成对象的策略?

我的尝试

当我将其另存为test_foo.py并执行pytest时,我得到:

如果假设产生一个没有中间名的人和一个有中间名的人,我会特别喜欢。

0 投票
1 回答
661 浏览

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)最简单的方法,所以我决定走那条路。

0 投票
1 回答
108 浏览

python - 使用假设测试 Python 函数引发错误

有没有办法使用Hypothesis来检查 Python 函数在将一组特定的参数传递给它时是否引发错误?True如在,如果函数失败并且不使测试执行停止并且函数标记为失败,我希望断言是。

0 投票
1 回答
97 浏览

python-hypothesis - 我可以列出假设策略生成的对象吗?

hypothesis很多策略,我仍在努力理解它们。看看它们产生了哪些价值对我有很大帮助。那可能吗?

MVCE

hypothesis==5.18.3pydantic==1.5.1:_

如您所见,我目前弄清楚假设在做什么的方法是手动将其添加到此seen列表中。有没有办法将策略用作生成器/生成策略测试的值列表?