6

我们目前已经切换到在插件的帮助下,在多个操作系统上的多个浏览器中远程运行单元测试。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)
...

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

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


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

4

2 回答 2

6

我已经分叉了karma 插件并在其中添加了一个选项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
});

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

屏幕

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

您可以feature-extra-logs分支上查看代码。

我真的不知道您希望如何(以及最佳实践)将其部署给您,因为我认为合并到上游不够有趣,但我可能错了。

于 2014-09-23T20:13:25.667 回答
3

不是真正的业力特定,但您可以使用https://github.com/sindresorhus/time-grunt查看整个 unit:remote 任务需要多长时间。

只需从它的 readme.md 复制,您可以使用安装它

npm install --save-dev time-grunt

然后将您的 gruntfile 编辑为

// Gruntfile.js
module.exports = function (grunt) {
  // require it at the top and pass in the grunt instance
  require('time-grunt')(grunt);

  grunt.initConfig();
}

然后,当您运行 grunt 任务时,您应该得到如下输出:

时间紧迫的例子

于 2014-09-21T18:53:53.217 回答