【发布时间】:2017-10-22 20:59:43
【问题描述】:
我遇到了 Zombie.js 抛出错误 Error: Timeout: did not get to load all resources on this page 的问题。
它总是超级随机的,而且似乎总是发生在不同的测试中。
我曾经有以下代码行来防止这个问题。
Browser.waitDuration = '60s';
问题是最近 Stripe.js 导致了这个问题,我的单元测试需要额外的 55 秒。见this question。
所以 Stripe 建议我删除那条线。果然我的测试又开始跑得更快了。
但我忘记了我添加了该行以防止出现此超时错误。
有什么想法可以解决这个问题,同时确保我的单元测试不会花费不合理的时间吗?
【问题讨论】:
-
也许等待时间较短,捕捉错误并继续进行是一种选择?
-
@ippi 这究竟是如何工作的?如果测试失败,我不想继续并将测试标记为成功。我只是希望我的测试不要花整整一分钟,不要随机超时,而且似乎没有理由哈哈。
-
是的,当然没有通过测试,但如果它每次都发生在不同的地方,也许这是可以接受的。即:使用
zombie.on("error", callback)捕获错误检查错误实际上是超时(如果不是超时则再次抛出),并可能记录一两行。 -
我相信你现在已经看到了github.com/assaf/zombie/issues/882。谷歌分析似乎是一个恶棍,内存泄漏是另一个。 (抱歉,只是提出一些想法。)
-
@ippi 好的,这有点道理。我确实看到内存使用量超过 1.4gb 左右。我看不出它失败的时间和记忆之间有什么相似之处。就那个zombie.on错误而言,当它们不是并且可能记录一两行时再次抛出是什么意思?我的意思是我知道问题是超时。至少当测试失败时是这样说的。我只是不确定如何绕过它或解决问题。我确实认为 Stripe 最近集成了类似于 Google Analytics 的东西来查看页面上的时间(只是猜测,但似乎很有可能),这就是为什么它失败了。
标签: javascript node.js unit-testing mocha.js zombie.js