WSL2 Ubuntu环境下VS Code中运行Jest测试报错求助
确认VS Code终端默认用WSL的shell
打开VS Code设置,搜索terminal.integrated.defaultProfile.linux,将默认终端设为bash或你WSL中使用的zsh。也可以直接在终端面板右上角的下拉菜单里,手动切换到Ubuntu对应的shell,避免使用Windows的CMD/PowerShell。从WSL终端重新启动VS Code
关闭所有VS Code窗口,在WSL的Ubuntu终端里cd到项目根目录,执行code .重新打开项目。这样VS Code会以WSL上下文启动,终端默认路径就是WSL的本地路径,不会出现UNC路径的问题。强制npm用WSL的shell执行脚本
在WSL终端运行npm config set script-shell /bin/bash,让npm的脚本命令都通过WSL的bash执行,避免调用Windows的CMD。检查package.json的test脚本
确保test脚本是"test": "jest",直接调用项目本地安装的jest(会使用node_modules里的版本),不要写Windows风格的路径或全局命令。可以先在终端手动执行./node_modules/.bin/jest,确认本地jest能正常运行。修正jest.config.js的路径配置
配置里的路径全部用相对路径,比如testMatch: ['**/__tests__/**/*.js'];如果必须用绝对路径,就写WSL的Linux风格路径,比如/home/niyi74/projects/meadowlark/site/src,别用Windows的C:\或者UNC格式路径。
内容的提问来源于stack exchange,提问作者Suraju Ogundele

