Describe is not defined exception on Typescript, Mocha and VSCode
由于某些原因,我的摩卡测试脚本抛出了"描述未定义"的异常。
我已经阅读并尝试了这些SO问题建议的解决方案,但是没有运气:
描述不是功能
"摩卡描述未定义重复项"
其他链接是:
打字稿摩卡描述不是功能
这是我的VSCode launch.json。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | { "type":"node", "request":"launch", "name":"Mocha Tests", "program":"${workspaceFolder}/node_modules/mocha/bin/_mocha", "args": [ "-u", "tdd", "--timeout", "999999", "--colors", "${workspaceRoot}/dist/tests/**/*.js" ], "outFiles": ["${workspaceFolder}/dist/tests/**/*.js"], "sourceMaps": true, "protocol":"inspector", "internalConsoleOptions":"openOnSessionStart" } |
这是我的摩卡咖啡测试脚本:
1 2 3 4 5 6 7 8 9 10 11 12 | import"mocha"; import assert = require("assert"); describe("Init", () => { before(() => { console.log("before-hook"); }); it("connected", () => { assert(true,"is not true"); }); }); |
这是我的tsconfig.json:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | { "compilerOptions": { "experimentalDecorators": true, "strict": true, "noImplicitAny": false, "module":"commonjs", "target":"es6", "lib": ["es6" ], "sourceMap": true, "outDir":"dist", "moduleResolution":"node", "resolveJsonModule": true, "strictNullChecks": true, "allowJs": false, "checkJs": false, "types": [ "node" ] }, "compileOnSave": true } |
我在这里做错了什么? 我真的需要重新使用摩卡咖啡。
在这里回答我自己的问题。
安装Mocha 6.1.1后,我已经解决了这个问题。
在launch.json上,将args数组从" tdd"更改为" bdd",以便:
5.x版使用了" tdd"选项,因此下一个主要版本引起了配置错误的问题。
您的测试文件是否用Javascript编写(您在launch.json中引用* .js)?
我正在使用ts-node调试单元测试,并直接引用Typescript测试文件,因此我的launch.json条目如下所示。 在使用ts-node之前,从VS Code内部运行时遇到"描述未定义"错误。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | { "type":"node", "request":"launch", "name":"Unit tests (mocha)", "program":"${workspaceFolder}/node_modules/mocha/bin/_mocha", "args": [ "-r", "ts-node/register", "--timeout", "999999", "--colors", "${workspaceFolder}/test/**/*Test.ts", ], "console":"integratedTerminal", "internalConsoleOptions":"neverOpen", "protocol":"inspector" } |
也许可以通过在
1 2 3 4 5 6 7 8 9 10 | { "compilerOptions": { ... "types": [ "node", "mocha" <--- specify here ] }, "compileOnSave": true } |
同样不要忘记安装
1 | npm install @types/mocha --save-dev |
希望它能解决您的问题