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

Github Actions中ng test测试通过后流程挂起问题求助

解决Github Actions中Angular测试通过后挂起的问题

针对测试执行通过但工作流卡住无法继续的问题,你可以尝试以下几个针对性方案:

1. 给ChromeHeadless添加CI环境必需参数

Github Actions的无界面环境中,ChromeHeadless需要禁用沙箱才能正常退出。修改测试命令,补充关键参数:

- name: Run tests
  run: npm test -- --watch=false --browsers=ChromeHeadless --no-sandbox --disable-gpu --disable-dev-shm-usage

2. 在karma.conf.js中配置适配CI的浏览器启动器

如果直接加参数无效,可在karma配置中定义自定义的ChromeHeadless启动项,确保参数生效:

customLaunchers: {
  ChromeHeadlessCI: {
    base: 'ChromeHeadless',
    flags: [
      '--no-sandbox',
      '--disable-gpu',
      '--disable-dev-shm-usage',
      '--remote-debugging-port=9222'
    ]
  }
},
reporters          : ['progress'], // 移除kjhtml(仅本地有用)
autoWatch          : false,
browsers           : ['ChromeHeadlessCI'],
singleRun          : true,
restartOnFileChange: false,

同时简化工作流中的测试命令:

- name: Run tests
  run: npm test

3. 检查package.json的test脚本

确保package.json里的test脚本没有额外监听参数干扰:

"scripts": {
  "test": "ng test"
}

4. 兜底:强制清理残留进程

如果以上方法仍无效,可添加进程清理步骤作为兜底:

- name: Run tests
  run: npm test -- --watch=false --browsers=ChromeHeadless --no-sandbox || true
- name: Clean up leftover processes
  run: pkill -f "karma" || true

核心问题在于ChromeHeadless在CI无界面环境中,若缺少必要参数会导致进程无法正常退出,进而卡住工作流。优先尝试前两个方案,基本能解决大部分此类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:20:43