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

React Script测试完成后无法终止,Github Action执行npm test卡住

解决Github Action中npm test进程卡住无法终止的问题

你的测试脚本里的--watchAll参数是导致进程卡住的核心原因:这个参数会让测试套件在运行完成后保持监听状态,等待文件变化重新触发测试,而Github Action属于非交互式的CI环境,不需要这种持续监听的模式,哪怕加了--forceExit也没法强制终止监听进程。

给你几个直接的解决办法:

  • 移除--watchAll参数,或者把它改成--watchAll=false。react-scripts在CI环境下默认会自动禁用watch模式,但显式设置--watchAll=false能彻底避免歧义。
  • 拆分测试命令,在package.json里单独加一个CI专用的测试脚本:
    "test": "react-scripts test --watchAll --coverage --forceExit --transformIgnorePatterns \"node_modules/(?!axios)/\"",
    "test:ci": "react-scripts test --watchAll=false --coverage --forceExit --transformIgnorePatterns \"node_modules/(?!axios)/\""
    
    然后在Github Action的配置里运行npm run test:ci,这样开发环境和CI环境的测试逻辑分开,更不容易出问题。
  • 检查react-scripts版本,如果是较旧的版本,可能存在参数组合的bug,升级到稳定版(比如v5.x系列)能解决一些兼容性问题。

另外,确认测试用例里没有开启长期运行的异步任务或者未关闭的连接,虽然你说测试已经完成,但个别残留的异步操作也可能导致进程无法退出,不过这种情况概率较低,优先处理--watchAll的问题即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:40:39