2016-12-22 83 views
13

完成後,我想最終對終端用量角器測試我們的角2的應用程序,但我堅持的消息:失敗:超時等待異步角任務11秒

"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;),這沒關係。但是我放棄了「自動等待」功能,這是使用量角器的主要優點之一。

該應用程序完全基於角2.所以,爲什麼這不起作用?

我們的開發者告訴我,我們不是輪詢(根據Protractor documentation的可能原因之一)。順便說一句,我們正在使用websocket體系結構。我不知道是否有鏈接。

其實,我不知道如何解決這個問題。

請問有人可以幫忙嗎?

+0

的[量角器測試引導模式 - 沒有棱角頁 - 超時]可能的複製(http://stackoverflow.com/questions/ 40817733 /量角器 - 測試-bootstrap-modal-not-angular-page-timeout) –

+0

你可以嘗試下面的解決方案並檢查它是否工作 – AdityaReddy

回答

6

你的猜測是正確的。如果他們是在angular2應用程序中運行的任何未完成任務,則會發生此錯誤。

是的,最常見的原因是應用程序連續輪詢$ timeout或$ http時,量角器將無限期地等待並超時。但是,這也可以應用在那裏花的時間超過11秒

請參考here的更多信息,不同的超時

默認的超時值爲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; 
2

臨時啓用browser.ignoreSynchronization修復它,因爲在回答中here報道。

browser.ignoreSynchronization = true; 

(代碼引發錯誤)

browser.ignoreSynchronization = false;