2017-11-13 5 views
0

ブラウザウィンドウを手動で閉じた後、カルマAPIを使用してカルマサーバーを自動的に終了したいと考えています。カルマAPIのbrowser_changedイベントハンドラでブラウザの更新リストを取得するには?

... 
var karmaServer = new karma.Server(karmaOptions, done); 
karmaServer.on('browsers_change', stopServerIfAllBrowsersAreClosed); //for a full list of events see http://karma-runner.github.io/1.0/dev/public-api.html 
karmaServer.start(); 

function stopServerIfAllBrowsersAreClosed(browsers) { 
    if (browsers.length === 0) { 

    //double check since browser might only be closed temporarily due to connection issues 
    setTimeout(function() { 
     if (browsers.length === 0) { 
     karma.stopper.stop(); 
     } 
    }, 2000); 
} 
} 

ブラウザの数が変化した場合に予想されるように、そのコードの作業はウィル、(観測可能?)のでbrowsers引数は常に更新されますか?

接続の問題でbrowser_changeイベントが発生した場合は、長さはいつも0になりますか?

カルマドキュメントは、コレクションが観測可能であるかどうかを述べるません。

https://karma-runner.github.io/0.13/dev/public-api.html

これが動作しない場合は、手動でのみ最後にブラウザを閉じた後、サーバーを停止するための代替戦略を知っていますかネットワーク接続の問題ではありませんか?

答えて

0

ブラウザの配列が更新されておらず、「ダブルチェック」が機能しないことが判明しました。私はブラウザの更新された数を得る方法を見つけませんでした。

karma.conf.jsのbrowserDisconnectTimeoutを増やして、不要なクローズの問題を回避するのに役立ったのは、

関連する問題