假设产生片状测试错误时如何调试?

时间:2019-10-10 09:45:14

标签: pytest python-hypothesis

我正在使用假设python包进行状态测试。 运行测试时出现以下错误:

hypothesis.errors.Flaky: Unreliable assumption: An example which satisfied assumptions on the first run now fails it.

我从类似的帖子中了解了片状错误的含义。我的测试第一次失败,但是第二次通过了。我从日志中了解到,哪个测试导致了此失败。假设在整个测试过程中尝试了4次相同的测试序列,其中有2个通过了,有2个失败了。

我已经在没有假设的情况下单独尝试了失败的测试,并且它不会失败。我试图了解导致片状错误的原因。可能是以下帖子中给出的假设错误:

What does Flaky: Hypothesis test produces unreliable results mean?

我该如何解决?请在以下链接中找到测试运行的日志文件: https://github.com/aparnasbose/hypothesis/blob/master/flaky%20test

1 个答案:

答案 0 :(得分:0)

问题几乎可以肯定是您的测试并非对所有输入都具有确定性;假设可以找到一些论点或行动序列,这些论点或行动序列有时会通过,有时会失败。假设认为这是您测试中的错误,并引发Flaky错误。

要更详细地诊断这一点,我需要查看您的实际源代码。

FYI verbose的详细程度在这里比debug(丢弃过多的内部状态)有用。您可能还需要升级到假设> = 4.41.1,以改善统计信息。