我有一些简单的业力/茉莉花单元测试,针对angularjs app运行。我使用最新版本的Chrome并在WebStorm IDE中运行我的测试。
有时候测试套件运行得非常快(0.24秒)
对于完全相同的代码,有时完全相同的测试套件运行速度非常慢(120秒)
我尝试过每一个常识修复。我已经在网上搜索,试图发现我做错了什么。
为什么我的测试运行得这么慢?
答案 0 :(得分:118)
答案很简单。
我正在使用Chrome来运行业力服务器。当您第一次启动业力服务器时,Chrome的一个实例将作为最大化窗口启动。所以你自然会将其最小化,这样你就可以看到你的测试正在运行。
问题是Chrome会使CPU周期的任何最小化或辅助标签(切换标签)变得匮乏。
因此,如果您最小化运行karma服务器的浏览器实例,或者只是切换到另一个选项卡,那么karma服务器将严重缺乏CPU,并且测试需要很长时间才能完成。
解决方案是保持karma标签处于活动状态。浏览器窗口可以隐藏在其他窗口后面,但是karma选项卡必须是选定的选项卡,并且浏览器不能最小化。
遵循这些简单的规则将确保您的测试始终全速运行。
答案 1 :(得分:0)
Biofractal回答了他自己的问题,你可以做到这一点。您还可以将测试设置为在PhantomJS或Chrome Headless中运行,这基本上允许单元测试仅在您的命令行中运行,从而消除了对您的实际浏览器的影响。