为什么我的AngularJS,Karma / Jasminetesting运行得如此缓慢?
我有一些简单的业力/茉莉花unit testing运行在angularjs应用程序。 我使用最新版本的Chrome,并在WebStorm IDE中运行我的testing。
有时testing套件运行非常快(0.24秒)
有时,完全相同的代码完全相同的testing套件运行非常缓慢(120秒)
我已经尝试过每一个常识的修复。 我搜遍了networking,试图发现我做错了什么。
为什么我的testing运行得如此缓慢?
答案结果非常简单。
我使用Chrome来运行karma服务器。 当您第一次启动karma服务器时,Chrome的一个实例将以最大化的窗口启动。 所以自然你最小化这个,所以你可以看到你的testing运行。
问题在于,Chrome会使CPU周期的任何最小化或辅助选项卡(切换的选项卡)变得最小。
因此,如果您最小化运行karma服务器的浏览器实例,或者只是切换到不同的选项卡,则karma服务器严重缺乏CPU,并且testing需要很长时间才能完成。
解决scheme是保持业力选项卡激活。 浏览器窗口可以隐藏在其他窗口的后面,但因果报表选项卡必须是选定的选项卡 ,浏览器不能被最小化 。
遵循这些简单的规则将确保您的testing始终以全速运行。
Biofractal已经回答了他自己的问题,你可以这样做。 你也可以设置你的testing在PhantomJS中运行,它基本上允许unit testing只在你的命令行中运行,从而消除了对你的实际浏览器的影响。