问题标签 [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 - 在假设函数中执行数据库查询时列出索引超出范围
我正在使用 Python Hypothesis 为数据库编写随机测试。在将给定值插入表的 1-2 次循环后,我得到列表索引超出范围并@seed 重现。没有什么会失败,我还没有断言任何事情。我该如何调试呢?
谢谢
结果:
python - 假设总是返回最小值
我用假设做一个小测试,同时考虑以后更广泛地使用它。
我尝试让我的测试获得一个介于 0 到 25 之间的整数的参数。我做了以下操作:
但x
总是设置为0,所以我尝试了:
它总是被设置为 1,表明它总是取最小值。我在做什么错\我在哪里可以将其配置为随机的?
编辑:假设版本:hypothesis==4.18.3
python - booleans().example() 总是返回 True
重现:
为什么st.booleans().example()
总是返回True
?我的理解是,该example
方法应该返回策略可以输出的示例,并且在某种程度上随机输出。
相关地,st.sampled_from(...)
似乎永远不会返回迭代中的第一项:
那么这里发生了什么?
我知道example
方法文档说该方法“不应该太认真”(见这里)。但这提供的解释很少,如果能更深入地了解为什么会发生这种情况会很好。
python - 生成具有相同键的字典列表
我想生成一个字典列表,其中所有字典都具有相同的键集。
TypeError:LazyStrategy 类型的对象不是 JSON 可序列化的
我怎样才能解决这个问题?
编辑:第二次尝试:
python - 通过另一种策略引用一种策略
在定义策略时,是否可以参考其他策略?
这抛出NameError: 'maximum' not defined'
编辑:
一种解决方法(或者可能是解决方法)是使用假设的assume
功能。就我而言,它看起来像:
python - 为什么我的简单、有限假设检验永远不会停止?
我正在运行一个带有假设 4.24.6 和 pytest-5.0.0 的测试套件。我的测试有一组有限的可能输入,但假设永远不会完成测试。
我已将其简化为以下最小示例,我将其运行为pytest test.py
我希望它在这里尝试所有六种组合然后成功。或者可能是其中的一小部分以检查片状。相反,它会无限期地运行,(经过大约 15 分钟的测试,我将其杀死。)
如果我中断测试,回溯似乎表明它只是不断地生成新的例子。
我在这里做错了什么?
python - 为什么 strategy.permutations 不提供最小的排列集?
我编写了一个测试来验证给定函数对于指定为输入的列表的任何给定排列是否正确。
使用hypothesis
python 包我尝试构建这个测试用例。但是,生成的排列列表包含许多重复的测试用例。
例如,使用 3 个项目的列表 ( ['a', 'b', 'c']
) 我希望排列列表中有 6 个条目(abc、acb、bac、bca、cab、cba),但事实并非如此。
这是一个 MWE,假设您有假设包:
或者,代码位于repl.it上。
不幸的是,文档并没有启发我,但也许我没有找对地方。
知道我做错了什么吗?
python - 声明由假设生成的两个参数之间的关系
我正在使用假设进行测试,并且我想在测试的两个参数之间建立关系。我知道assume
,但是当我事先知道约束时,这似乎很浪费。
这是一个最小的例子:
上述统计摘要报告如下:
这是相当多的浪费尝试。这是一个非常简单的案例,但是在一个典型的数据量大的项目中,我可以预见很多这样的场景。所以我想知道,是否有一种简单的方法来判断两个参数满足某种关系的假设(在这种情况下,一个大于另一个)。我在文档中找不到任何内容。
python - 使用pytest的xfail单一假设案例?
使用 pytest,我将特定参数设置为按预期失败。
我的测试套件虽然使用假设。这是我们知道的一个错误,我们不打算在此版本的 API 中修复。它已经被记录在案,并且修复它所花费的时间不值得目前所需的努力。
有用的是,假设每次测试套件运行时都会指出这个失败,我们已经学会了忽略它。显然这很糟糕(特别是因为它导致我们忽略了其他我们不应该做的事情)。
有没有办法告诉 pytest 预期单个参数值的假设失败?我不想完全删除它,因为有一个更大的项目即将修复它。当这种情况发生时,我想假设再次检查这种情况。
我想应用这个的测试用例定义如下:
我的目标是能够说当inp
等于特定值时,预期会失败。否则,该测试应该通过。
python - 使用假设重复条目的 Pandas 索引示例
我想生成一个pandas.Index
重复条目,像这样。
所以我写了以下策略:
但是,当我尝试借鉴这样的策略时,我收到以下错误:
在一些实验中,我意识到它只有在min_size
小于等于选择数(在这种情况下<= 5)时才有效。然而,这意味着我永远不会得到重复的例子!
我究竟做错了什么?
编辑:显然,默认情况下只有indexes
策略unique
设置为,将其设置为下面答案中提到的也适用于我的方法。True
False