2017-06-28 12 views
1

長時間実行している$ http要求でタイムアウトしたため、e2eテストに失敗しています。次のエラーが発生しています。 次のタスクが保留中でした: - $ http:..... ScriptTimeoutError:非同期スクリプトのタイムアウト:結果が10秒以内に受信されませんでした。

私はhttps://github.com/angular/protractor/issues/169

あたりのような問題のこの種に対応するために、角度のコードでHTTP呼び出しを行うために$間隔のサービスを使用していた。しかし、まだ分度器は、上記のエラーで失敗しています。 私は角度1.6.xと分度​​器5.xを使用しています。

誰でもお手伝いできますか?

+0

イベントストリームとHTTPリクエストを使用した私の角張ったアプリケーションは、分度器が閉じてしまうことはありませんミウト。私は長期間実行されているHTTP要求をラップするのに$ intervalを使用しましたが、長時間実行されているタスクに対しては分断器はタイムアウトを取得します。 –

答えて

0

エラーメッセージにもとづいて、角度計がデフォルトで11秒のタイムアウトを待っているようです。これを変更するには、allScriptsTimeoutを増やします(hereを参照)。

既に試しましたか?

アップデート:私は、ポーリング間隔とのものに見てきた

、多分protractor git上のこのリンクは役立ちます。 thisも読んでいますか?

+0

はい、私は最大待機時間を300秒に設定しようとしました。しかし、いくつかのasnyc $ http要求が長い時間を要するため、タイムアウトになります。私はイベントストリームを使用しているので、$ http reqeustsは決して閉じられず、分度器は待ってタイムアウトになります。 –

1

あなたがこの方法のように、角度$ httpと$のタイムアウトを待つことはない分度器を伝える必要があります:

は古いが道を非推奨:

browser.ignoreSynchronization = true; 

新正しい方法:

browser.waitForAngularEnabled(false); 
+0

browser.ignoreSynchronization = trueの場合、分度器は$ timeoutまたは$ httpを待つことなく、実行する前に終了します。これによりテストが不安定になる可能性があります。 –

+0

しかし、テストで$ timeoutや$ httpセクションの後に 'browser.ignoreSynchronization = false;'を設定することができます。 – Batajus

+0

問題はこのようなイベントストリーム(長時間実行)のHTTPリクエストがすべてのビューで使用されているので毎回私はbrowser.ignoreSynchronization = falseを作ります。同じタイムアウトが再び発生します。だから私は私の分度器は、このような長い実行中のhttp要求を無視するようにしたい。 –

関連する問題