为什么我的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只在你的命令行中运行,从而消除了对你的实际浏览器的影响。