问题标签 [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.
pytest - Flaky: Hypothesis test 产生不可靠的结果是什么意思?
我正在使用假设 python 包进行测试。
我收到以下错误:
不稳定:假设 test_visiting 产生不可靠的结果:在第一次调用时被伪造,但在随后的调用中没有
据我所知,测试工作正常。
我该如何解决这个问题?
python - 没有评估平面图的假设
我试图调整文档的示例
生成 3 个整数的元组,其中 2/3 以另一个整数为界,
但是在运行时,我得到了这个不幸的堆栈跟踪:
我尝试摆弄它并附加.example()
,并发现删除内部策略并替换为n
,例如,工作,但是一旦我开始使用n
作为内部策略的命名参数tuples()
,我就会得到错误。
该示例确实有效,但我看不出我在做什么不同。
python - 如何在同一个测试用例中使用假设和基于 pytest-tornado 产量的测试?
我正在编写使用Tornado库的代码的py.test测试。如何在涉及协程和 IOLoop 的测试中使用Hypothesis ?通过使用pytest-tornado ,我已经能够在没有 Hypothesis 的情况下编写基于产量的测试,但是当我尝试将它与 结合时,我收到以下错误:@pytest.mark.gen_test
@given
FailedHealthCheck:在下运行的测试
@given
应该返回None
,而是test_both
返回<generator object test_both at 0x7fc4464525f0>
。有关这方面的更多信息,请参阅http://hypothesis.readthedocs.org/en/latest/healthchecks.html。如果您只想禁用此运行状况检查,请添加到此测试
HealthCheck.return_value
的设置中。suppress_health_check
考虑到假设文档说,我非常有信心这是一个真正的问题,而不仅仅是禁用健康检查的问题
基于产量的测试根本行不通。
这是演示我的情况的代码:
test_hypothesis
并且test_tornado
工作正常,但我得到了错误,test_both
因为我yield
一起使用和假设。
改变装饰器的顺序并没有改变任何东西,可能是因为gen_test
装饰器只是一个属性标记。
我可以使用 Hypothesis 编写基于 Tornado 的代码的测试吗?如何?
python - 使用假设生成具有自定义值限制的列表列表
故事:
目前,我有一个被测函数,它需要一个具有以下规则的整数列表列表:
- 子列表的数量(我们称之为
N
)可以从 1 到 50 - 子列表中的值的数量对于所有子列表(矩形形式)都是相同的,并且应该 >= 0 和 <= 5
- 子列表中的值不能大于或等于子列表的总数。换句话说,子列表中的每个值都是一个整数 >= 0 并且 <
N
样本有效输入:
示例无效输入:
我正在尝试使用基于属性的测试来处理它,并使用hypothesis
库生成不同的有效输入,并试图将我的头绕在lists()
andintegers()
上,但无法使其工作:
- 条件 #1 很容易用
lists()
andmin_size
和max_size
参数处理 - 条件 #2 涵盖在
Chaining strategies together
- 条件 #3 是我正在努力解决的问题 - 因为,如果我们使用
rectangle_lists
上面示例中的,我们没有对内部“父”列表长度的引用integers()
问题:
如何将子列表中的整数值限制为小于子列表的总数?
我的一些尝试:
这远远不能满足要求 - 列表不是严格的矩形形式,并且生成的整数值可以超过列表的生成大小。
在这里,#1 和 #2 是满足要求,但整数值可以大于列表的大小 - 不满足要求 #3。
python - 在假设中跳过伪造的例子
故事:
我目前正在使用hypothesis
和自定义生成策略对函数进行单元测试,试图找到一个特定的输入来“破坏”我当前的解决方案。这是我的测试的样子:
answer()
基本上,当函数不返回 0 或 1 或 2时,我正在寻找可能的输入。
这是我当前的工作流程的样子:
- 运行测试
/li>hypothesis
找到一个产生 的输入AssertionError
:使用此特定输入调试函数,尝试了解此输入/输出是否合法并且该函数是否正常工作
问题:
我怎样才能跳过这个伪造的生成示例([[0], [1]]
在这种情况下)并要求hypothesis
生成一个不同的示例?
该问题也可以解释为:hypothesis
如果发现伪造示例,我可以要求不终止并生成更多伪造示例吗?
python - Random sampling with Hypothesis
In Hypothesis, there is an corresponding sampled_from()
strategy to random.choice()
:
But, is there a way to have random.sample()
-like strategy to produce subsequences of length N out of a sequence?
python-hypothesis - 从正则表达式生成字符串数据
我希望能够采用正则表达式并使用 python 假设库生成符合要求的数据。例如给定一个正则表达式
这将匹配任何英文字母字符。一个示例生成器可能是。
但理想情况下,我想构造一个与传入的任何正则表达式匹配的字符串。
python - Python 假设:如何组成相互依赖的生成器?
我有一个使用 python 假设的生成器,如下所示:
上面的每个函数都返回如下内容:
我在reorder
值和delay
重新排序中的值之间存在依赖关系,只有在延迟不是时才能指定None
。
我不知道如何做到这一点。过滤似乎遇到了性能问题。在代码中的这一点上,该delay
值还不是一个具体的值。
python - 生成带有假设的随机对象列表
我需要在 python 中测试一个函数,该函数接受一个包含任何类型数据的列表,从整数到字符串再到用户组成的任何对象。有没有办法在假设中生成一个包含随机对象的列表?我知道我可以生成一个随机浮点列表
整数,字符等等等等等。但是我怎样才能使随机列表具有不止一种数据类型呢?
python - Python假设-为许多测试构建一次策略?
我有一个复合的、构建成本高但测试成本低的策略。我必须这样做:
构建示例大约需要 4 秒,而运行断言的时间可以忽略不计。
最佳实践要求将这些测试分开。
我不清楚如何结合假设策略和例如。TestCase.setUp 或 pytest 会话范围的固定装置。装饰夹具和调用x = expensive_strategy(); @given(x)
都无济于事。