我不时会花费相当多的时间来诊断和排除来自我的自动化测试的误报。在浏览器驱动的几百个测试中,大约4%的测试失败了,似乎没有押韵或理由,并且它们每次都会有所不同。例如,一些简单的共享步骤可能在一个示例中起作用,但在另一个示例中无故失败。
我继续花时间排查和改善这些方面(改善等待元素,改善先决条件等)但似乎只是略有帮助。有趣的是,当使用IE11和Chrome时,这种现象似乎更加恶化。
我遇到了一个名为rspec-retry
的整洁宝石,它只是在它们出现时重试任何失败的测试。我想知道这种方法的共识是什么,因为我坚持要确保我能够以正确的方式进行测试"。
答案 0 :(得分:1)
简答:除了&#34之外没有达成共识;大多数人都没有这样做"。
主要是 - 我们弄清楚是什么导致规格失败并修复它们。这些被称为"间歇性规范失败"而且它们经常疼痛(特别是水豚)。但它们值得修复,因为它们会不断回归。
重构,重构,重构:有一种方法可以修复所有这些 - 即使你不得不求助于丑陋的sleep(1)
(*颤抖*)。