Flaky:假设检验产生的不可靠结果是什么意思?

sur*_*hvv 3 pytest python-hypothesis

我正在使用假设python包进行测试.

我收到以下错误:

Flaky:假设test_visiting会产生不可靠的结果:在第一次调用时出现伪造,但在后续调用时出现伪造

据我所知,测试工作正常.

我该如何解决这个问题?

dam*_*amd 8

我没有经常看到提到的一件事,这可能是一种相对较新的行为,那就是您可能想提高测试的截止日期。根据我的经验,如果一个测试用例由于错过了截止日期而失败,而第二个测试用例通过了,您将把它视为“片状”测试失败。

@hypothesis.settings(deadline=500)
Run Code Online (Sandbox Code Playgroud)

我很难找到一些关于这种行为的正确文档,我个人可以完全理解,但这似乎可以为我解决这个问题。


DRM*_*ver 5

它或多或少意味着它:你有一个第一次失败的测试,但是在重新运行相同的例子时第二次成功.这可能是一个假设错误,但通常不是.最常见的原因是您有一个依赖于某些外部状态的测试 - 例如,如果您使用的是系统随机数生成器而不是提供的假设,或者您的测试创建了一些文件,并且只有文件失败在测试开始时不存在.造成这种情况的第二个最常见原因是您的失败是一个递归错误,并且在一个函数调用级别触发它的示例在另一个级别没有.

您还没有真正提供足够的信息来说明实际发生的情况,因此很难提供更具体的建议.如果你正在运行一个最新版本的假设(例如1.9.0肯定会这样做)你应该得到关于发生了什么的非常详细的诊断 - 它会告诉你你得到的原始异常是什么,它会报告是否传入的值似乎在调用之间发生变化.