我想在手动关闭浏览器窗口后使用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
如果这不起作用,您是否知道在手动关闭最后一个浏览器窗口而不是网络连接问题后才停止服务器的替代策略?
答案 0 :(得分:0)
原来,浏览器数组没有更新,“双重检查”不起作用。我找不到获取更新数量的浏览器的方法。
有助于增加karma.conf.js中的browserDisconnectTimeout
以避免不必要的结束问题。