如何为TypeScript测试文件配置Mocha sidebar并解决ts-node/register找不到报错
我该如何为我的项目配置Mocha sidebar插件?
我的测试文件存放路径为:/src/Gamma.Tests/*.ts。
我已经在settings.json文件中添加了如下配置:
"mocha.files.glob": "src/Gamma.Tests/**/*.ts", "mocha.requires": [ "ts-node/register" ]
我也已经提前安装了以下依赖包:
npm install typescript --save-dev npm install ts-node --save-dev npm install -g ts-node npm install -g typescript
VSCode中出现的报错信息如下:
运行Mocha失败,错误信息如下:
" 无法找到模块 'ts-node/register' 。引入栈:
- c:\Users\rouhi.vscode\extensions\maty.vscode-mocha-sidebar-0.22.2\lib\worker\findtests.js
" 错误栈可在输出通道中查看。如需更多帮助:
补充说明
我的package.json文件中的scripts配置如下:
"scripts": { "test": "mocha -r ts-node/register src/Gamma.Tests/**/*.ts", "start": "tsc && node ./build/server.js" },
我在本地执行npm run test命令时运行完全正常,无报错。
解决方案
出现该问题是因为Mocha Sidebar插件的执行逻辑和npm脚本不同:npm运行test脚本时会自动把项目本地node_modules目录加入模块查找路径,所以能正常找到本地安装的ts-node/register;但插件默认只会从自身扩展目录、全局node_modules路径查找模块,找不到项目本地的依赖,因此报错。
按照以下步骤调整配置即可解决:
- 打开项目
.vscode目录下的settings.json文件,将mocha.requires配置修改为使用VSCode工作区变量指向本地ts-node路径:
"mocha.requires": [ "${workspaceFolder}/node_modules/ts-node/register" ]
- 如果修改后仍报错,可以新增
mocha.path配置,指定使用项目本地安装的mocha,避免插件自带的mocha版本和项目版本不兼容:
"mocha.path": "${workspaceFolder}/node_modules/mocha/bin/mocha", "mocha.files.glob": "src/Gamma.Tests/**/*.ts"
- 配置修改完成后,按下
Ctrl+Shift+P(Windows系统)或Cmd+Shift+P(Mac系统),搜索并执行「重载窗口」命令,重启后Mocha Sidebar即可正常加载所有测试用例。
内容的提问来源于stack exchange,提问作者x19
相关产品推荐
相关产品推荐

