关于自动重试失败测试的普遍共识似乎是什么?

What seems to be the general consensus on retrying failed tests automatically?

有时,我发现自己会花费大量时间来诊断和排除来自我的自动化测试的误报。在浏览器中驱动的数百个测试中,大约 4% 的测试似乎毫无规律或原因地失败了,而且每次测试都各不相同。例如,一些简单的共享步骤可能在一个示例中有效,但在另一个示例中无故失败。

我一直在花时间对这些方面进行故障排除和改进(改进对元素的等待、改进先决条件等),但它似乎只起到了很小的帮助。有趣的是,与 Chrome.

相比,使用 IE11 时这种现象似乎更加严重

我遇到了一个名为 rspec-retry 的简洁 gem,它会在失败的测试出现时重试它们。我想知道这种方法的共识是什么,因为我坚持要确保我是 "testing the right way".

简答:除"mostly people don't do this"外,没有达成共识。

主要是 - 我们找出导致规范失败的原因并修复它们。这些被称为 "intermittent spec failures",它们是一种常见的疼痛(尤其是水豚疼痛)。但它们值得修复,因为它们会不断回归。

重构,重构,重构:有一种方法可以解决所有这些问题 - 即使您不得不求助于丑陋的 sleep(1) (* shudder *)。