为什么我的AngularJS,Karma/Jasmine测试运行得如此之慢?

bio*_*tal 50 jasmine angularjs karma-runner

我有一些简单的业力/茉莉花单元测试针对angularjs app运行.我使用最新版本的Chrome并在WebStorm IDE中运行我的测试.

有时候测试套件运行得非常快(0.24秒)

对于完全相同的代码,有时完全相同的测试套件运行速度非常慢(120秒)

我尝试过每一个常识修复.我在网上搜索,试图发现我做错了什么.

为什么我的测试运行得这么慢?

bio*_*tal 119

答案结果非常简单.

我正在使用Chrome来运行业力服务器.当您第一次启动业力服务器时,Chrome的一个实例将作为最大化窗口启动.所以你自然会最小化这个,这样你就可以看到你的测试运行

问题是Chrome会使CPU周期的任何最小化或辅助选项卡(切换选项卡)匮乏.

因此,如果您最小化运行karma服务器的浏览器实例,或者只是切换到另一个选项卡,那么karma服务器将严重缺乏CPU,并且测试需要很长时间才能完成.

解决方案是保持karma选项卡处于活动状态.浏览器窗口可以隐藏在其他窗口后面,但是karma选项卡必须是选定的选项卡,并且浏览器不能最小化.

遵循这些简单的规则将确保您的测试始终以全速运行.

  • 哇!我不能告诉你我浪费了多少时间等待测试运行!我在这里补充一下,看起来窗口似乎不可见.简单地说,不要最小化它似乎是有效的. (6认同)
  • OMFG!好抓!也就是说,我们可以禁用Chrome中的某些内容来关闭此CPU保存功能吗? (4认同)