我想使用量角器端到端测试我们的Angular 2应用程序,但我坚持了消息:
"Failed: Timed out waiting for asynchronous Angular tasks to finish after 11 seconds."
我的conf文件。
exports.config = {
directConnect: true,
specs: ['spec.js'],
// For angular2 tests
useAllAngular2AppRoots: true,
}
Chrome已打开,并且网站也已打开,然后在超时之前什么都没有发生。
禁用同步时(使用browser.ignoresynchronization = true;),没关系。但是我正在失去"自动等待"功能,这是使用量角器的主要优点之一。
该应用程序完全基于Angular2。那么为什么它不起作用?
我们的开发人员告诉我,我们不是在进行轮询(根据旷虫文档的可能原因之一)。顺便说一句,我们正在使用WebSocket架构。我不知道是否有链接。
实际上,我根本不知道该问题。
有人可以帮忙吗?
您的猜测是正确的。当它们是在您的Angular2应用程序中运行的任何出色任务时,将发生此错误。
是的,最常见的原因是,当应用程序连续轮询$ timeout或$ http时,量角器将无限期地等待并超时。但这也可能发生在应用程序需要超过11秒的情况下
请参考有关不同超时的更多信息
默认超时值为11秒。您可以通过调整config.js中的以下值来更改此问题,然后尝试查看是否仍在查看问题
/**
* The timeout in milliseconds for each script run on the browser. This
* should be longer than the maximum time your application needs to
* stabilize between tasks.
*/
allScriptsTimeout?: number;
暂时启用浏览器。
browser.ignoreSynchronization = true;
(引发错误的代码)
browser.ignoreSynchronization = false;
修改测试用例并放置 browser.waitForAngularEnabled(false);
首次单击后应起作用。
但是,推荐的方法可以将conf.js
文件中的默认超时覆盖为allScriptsTimeout: 110000