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
相关产品推荐
相关产品推荐

