15

我的测试超时和随机失败时遇到问题。我一直在寻找如何编写健壮的水豚集成测试的最佳实践,但我没有发现任何有用的东西。

自从我们开始编写一堆测试以来,我们的 CI 服务器一直随机失败,使我们的应用看起来非常不稳定,但测试总是(大部分)在本地通过。

我想了解您和其他有经验的 BDD/TDD 专家如何处理:

  • 如何处理外部 javascript 和东西(KissMetrics、Google Analyics 等)和
  • 调试和防止破坏构建的超时错误

任何帮助,将不胜感激。

4

2 回答 2

7

跟进此事。我感谢@jonleighton 邀请我在 poltergeist 上提交错误,但我遇到的问题与两个单独的问题有关:

  1. 错误/错误的水豚断言会超时,因为我没有遵循这篇文章中明确列出的建议
  2. 3rd 方 javascripts 和东西。基本上我有 3rd 方 javascripts,比如 Kissmetrics、谷歌分析,甚至是每次测试出错时都会加载的实时帮助聊天,我消除了这种情况的发生,我的测试变得更快,看起来更稳定/一致。
于 2013-02-04T07:14:58.110 回答
3

我发现在许多情况下,我可以利用 Poltergeist 的黑名单功能帮助我的集成测试更具确定性。就我而言,我已将主机名列入黑名单,如下所示。

typekit.net
facebook.net
facebook.com
google.com
google-analytics.com
...

这个想法是关闭任何 a) 测试并不真正需要的东西,并且 b) 可能会影响 CI 环境下的页面加载完成。我注意到这有很大帮助。此外,将这个 PhantomJS 选项与 Poltergeist 一起使用也有帮助:

phantomjs_options: ['--ignore-ssl-errors=yes']
于 2016-02-13T13:14:08.823 回答