You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular项目Jasmine-Karma测试执行完成后超时挂起问题求助

Angular 3600+ Jasmine UI测试用例执行后Karma未发送完成信号导致CI超时断开

我们的Angular项目规模较大,UI层Jasmine测试用例已超过3600个。目前执行测试时使用以下命令提升Node内存:

node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng test --watch=false --code-coverage

同时配合karma-parallel包实现测试并行执行。

当前遇到的核心问题:所有测试执行完毕后,Karma/Jasmine无法向CI发送测试完成信号,导致CI进程卡住,最终因超时断开连接。

已尝试的临时解决措施(目前故障频发)

  • 将karma-parallel的浏览器实例数从3增加到6
  • 延长浏览器捕获超时时间
  • 为Chrome Headless添加启动参数flags: ['--disable-gpu', '--no-sandbox']

相关错误日志

Chrome Headless 111.0.5563.111 (Windows 10): Executed 790 of 0 (skipped 2) SUCCESS (1 min 7.852 secs / 26.015 secs)
24 03 2023 00:54:18.347:WARN [Chrome Headless 111.0.5563.111 (Windows 10)]: Disconnected (0 times) reconnect failed before timeout of 180000ms (ping timeout)
Chrome Headless 111.0.5563.111 (Windows 10) ERROR
  Disconnected reconnect failed before timeout of 180000ms (ping timeout)
Chrome Headless 111.0.5563.111 (Windows 10): Executed 528 of 0 DISCONNECTED (4 mins 8.438 secs / 14.81 secs)
24 03 2023 00:54:18.357:INFO [karma-server]: Restarting Chrome Headless 111.0.5563.111 (Windows 10) (1 of 2 attempts)
24 03 2023 00:54:19.543:INFO [Chrome Headless 111.0.5563.111 (Windows 10)]: Disconnected browser returned on socket ddVChBkukiwm6yErAAAZ with id 51823139.
24 03 2023 01:44:19.752:WARN [Chrome Headless 111.0.5563.111 (Windows 10)]: Disconnected (1 times) , because no message in 3000000 ms.

调整内存参数后的新问题

尝试将--max_old_space_size调至12288时,本地出现JavaScript堆溢出错误,日志如下:

............................................................
<--- Last few GCs --->

 
[11168:000002432B8735C0]   406231 ms: Scavenge 1965.8 (2298.2) -> 1964.9 (2298.2) MB, 13.7 / 0.0 ms  (average mu = 0.553, current mu = 0.000) allocation failure


<--- JS stacktrace --->

 
==== JS stack trace =========================================

 
    0: ExitFrame [pc: 00007FF6A620B96D]
Security context: 0x015f508808d1 <JSObject>
    1: keys [000001F508815B1](this=0x015f50880969 <JSFunction Object (sfi = 000001FCAF28A5A1)>,0x01424a99e649 <Object map = 000000E20EB43C79>)
    2: testFile [000003516B3E7039] [D:\node_modules\karma-sonarqube-reporter\lib\path-finder.js:45] [bytecode=00000075011398D1 offset=33](this...

 
FATAL ERROR: Committing semi space failed. Allocation failed - JavaScript heap out of memory

当前依赖包版本

"@angular/compiler": "13.2.0",
    "jasmine-core": "3.10.1",
    "jasmine-spec-reporter": "5.0.0",
    "karma": "6.3.18",
    "karma-chrome-launcher": "3.1.0",
    "karma-coverage": "2.2.0",
    "karma-jasmine": "4.0.0",
    "karma-jasmine-html-reporter": "1.7.0",
    "karma-junit-reporter": "2.0.1",
    "karma-sonarqube-reporter": "1.4.0",
    "karma-parallel": "0.3.1",

恳请各位提供可行的解决方向或指导意见。

内容的提问来源于stack exchange,提问作者Paritosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 12:47:54