如何在Karma API的browser_changed事件处理程序中获取更新的浏览器列表?

时间:2017-11-13 16:27:37

标签: api karma-runner

我想在手动关闭浏览器窗口后使用karma API自动关闭karma服务器。

 ...
 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);   
 }
}

该代码是否会按预期工作,因为当浏览器更改次数时,(observable?)browsers参数将始终更新?

如果在连接问题期间发出browsers事件,browser_change的长度是否始终为零?

karma doc没有说明集合是否可观察:

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

如果这不起作用,您是否知道在手动关闭最后一个浏览器窗口而不是网络连接问题后才停止服务器的替代策略?

1 个答案:

答案 0 :(得分:0)

原来,浏览器数组没有更新,“双重检查”不起作用。我找不到获取更新数量的浏览器的方法。

有助于增加karma.conf.js中的browserDisconnectTimeout以避免不必要的结束问题。