Karma执行完单元测试后挂起30秒,测试数量影响问题排查
Karma执行完所有单元测试后挂起并断开连接的问题
所有单元测试成功执行后,Karma会挂起30秒,随后输出如下错误:
Chrome Headless 114.0.5735.35 (Windows 10) ERROR Disconnected , because no message in 30000 ms. Chrome Headless 114.0.5735.35 (Windows 10): Executed 634 of 634 DISCONNECTED (34.58 secs / 3.303 secs) Chrome Headless 114.0.5735.35 (Windows 10) ERROR Chrome Headless 114.0.5735.35 (Windows 10): Executed 634 of 634 DISCONNECTED (34.58 secs / 3.303 secs)
查了大量Stack Overflow帖子,没找到完全匹配的解决方案。深入排查后发现测试数量是关键:测试数减至621个时执行正常,但新增任意测试(哪怕是空的it("should...",()=>{}))就会触发挂起。
当前karma.conf.js中使用的最新版本插件如下:
require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-jasmine-html-reporter'), require('karma-coverage'), require('@angular-devkit/build-angular/plugins/karma')
正常与异常情况的调试输出基本一致,仅异常情况底部会多出红色错误信息。
观察结果
- 从
package.json的ng test命令中移除--code-coverage选项后,能正常执行的测试数量阈值会提高,直到达到新的挂起点。 - 起初问题难以复现,后来发现是Karma默认随机执行测试导致的,在
karma.conf.js的jasmine配置中添加random: false后,问题100%可复现。
内容的提问来源于stack exchange,提问作者Bernd
相关产品推荐
相关产品推荐

