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

使用Vitest运行Vue单元测试时出现Segmentation Fault问题

Windows 10 Git Bash下Vitest测试通过后触发Segmentation Fault并丢失终端提示符

环境信息

  • 操作系统:Windows 10
  • 终端:Git Bash
  • Node.js版本:v18.18.0
  • npm版本:9.8.1
  • 项目框架:Vue.js 3.3.4
  • 测试框架:Vitest

项目package.json的scripts配置:

"scripts": {
  "serve": "vite",
  "test:unit": "vitest",
  "coverage": "vitest run --coverage",
},

问题现象

执行npm run test:unit后,所有测试用例均通过,但运行结束时出现Segmentation Fault错误,终端提示符丢失,需重启Git Bash才能恢复:

✓ src/views/__tests__/SockView.spec.js (3)
   ✓ StockView.vue (3)
     ✓ renders a title
     ✓ does not render the Bar chart when not loaded
     ✓ renders the Bar chart when loaded
/c/Program Files/nodejs/npm: line 64:   321 Segmentation fault      "$NODE_EXE" "$NPM_CLI_JS" "$@"

解决方法

  • 更换终端执行测试
    改用Windows自带的CMD或PowerShell运行npm run test:unit,这类终端与Node.js进程的兼容性更好,可直接规避该问题。

  • 修改Vitest为非监听模式
    更新package.json的test:unit脚本,添加run参数让测试一次性执行完毕,避免监听模式下的进程退出异常:

    "scripts": {
      "serve": "vite",
      "test:unit": "vitest run",
      "coverage": "vitest run --coverage",
    }
    
  • 升级Node.js版本
    Node.js 18.18.0存在Windows环境下的进程退出bug,升级至18.x最新稳定版(如v18.20.x)或20.x LTS版本,可修复底层兼容性问题。

  • 调整Git Bash环境变量
    在Git Bash中执行以下命令后再运行测试,减少终端与Node进程的冲突:

    export MSYS_NO_PATHCONV=1
    export TERM=dumb
    npm run test:unit
    

内容的提问来源于stack exchange,提问作者Péter Szilvási

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:01:01