使用karma runner获得总测试执行时间

ale*_*cxe 6 javascript unit-testing angularjs browserstack karma-runner

我们目前已经在插件的帮助下切换到在多个操作系统上的多个浏览器中的browserstack上远程运行单元测试karma-browserstack-launcher.

目前,测试运行的输出如下所示:

$ grunt unit:remote
Running "unit:remote" task

Running "karma:remote" (karma) task
INFO [karma]: Karma v0.12.23 server started at http://localhost:9876/
INFO [launcher]: Starting browser firefox 21.0 (OS X Mountain Lion) on BrowserStack
INFO [launcher]: Starting browser iPhone 5 (ios 6.0) on BrowserStack
INFO [launcher]: Starting browser android (android 4.1) on BrowserStack
INFO [launcher]: Starting browser ie 8.0 (Windows 7) on BrowserStack
INFO [launcher]: Starting browser ie 9.0 (Windows 7) on BrowserStack
INFO [launcher]: Starting browser chrome latest (OS X Mavericks) on BrowserStack
INFO [launcher]: Starting browser PhantomJS

PhantomJS 1.9.7 (Mac OS X): Executed 70 of 70 SUCCESS (0.063 secs / 0.275 secs)
Chrome 37.0.2062 (Mac OS X 10.9.0): Executed 70 of 70 SUCCESS (0 secs / 0.452 secs)
Mobile Safari 6.0.0 (iOS 6.1.4): Executed 70 of 70 SUCCESS (1.161 secs / 0.839 secs)
Firefox 21.0.0 (Mac OS X 10.8): Executed 70 of 70 SUCCESS (1.175 secs / 0.496 secs)
...
Run Code Online (Sandbox Code Playgroud)

每个浏览器都会报告执行时间.

有没有办法在控制台上查看总执行时间


仅供参考,这是我们正在使用的业力配置.

Bal*_*zar 5

我已经分叉的因缘插件并增加了一个选项extraLogkarma browserStack config获得后所有的浏览器都完成了,包括总执行和所有浏览器的网络时间的详细信息.

我主要使用browser_complete eventemitter是给我totalnet浏览器的时间.

emitter.on('browser_complete', function (data) {
  result.browsers.push({ name: data.name, time: data.lastResult.totalTime });
  result.time.net += data.lastResult.netTime;
  result.time.total += data.lastResult.totalTime; //this is what we want
});
Run Code Online (Sandbox Code Playgroud)

在这里使用三个浏览器的示例输出(抱歉,我还不是设计师):

屏幕

time-grunt相比,这可以让您获得更准确的结果.

您可以在feature-extra-logs分支上查看此处的代码.

我真的不知道你想要(以及最佳实践)将它部署到你身上,因为我认为将它合并到上游并不是很有趣,但我可能错了.

  • @alecxe [这里](https://github.com/karma-runner/karma-browserstack-launcher/pull/14) 是 PR 供参考 (2认同)