我写了一个 Typescript 库。单元测试也是使用 Mocha 框架用 Typescript 编写的。我想直接执行单元测试而不用编译成 javascript。 这适用于此命令:
./node_modules/mocha/bin/mocha ./test/*.test.ts --require ts-node/register
我尝试使用以下启动设置从 Visual Studio Code 调试单元测试:
{
"type": "node",
"request": "launch",
"name": "Mocha Tests",
"program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
"args": [
"--require",
"ts-node/register",
"${workspaceRoot}/test/*.test.ts"
],
"internalConsoleOptions": "openOnSessionStart"
}
这样我就可以从 VS Code 调试 Mocha 本身,但不能调试单元测试。 Mocha 为测试生成单独的进程,调试器无法自动附加到子进程。
从 Visual Studio Code 调试 Typescript 单元测试的正确方法是什么?
最佳答案
将此线程更新为适合我们的配置( self 注意)。
- https://stackoverflow.com/a/44999572/147530 中的
--compilers
选项已弃用 ts:ts-node/register
给出错误- 添加“${relativeFile}”还会在位置 6 处给出错误 Unexpected token/in JSON,因为“${relativeFile}”解析为 .vscode/launch.json 。
更新配置
{
"name": "mocha tests",
"type": "node",
"protocol": "inspector",
"request": "launch",
"program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
"stopOnEntry": false,
"args": [ "-r", "ts-node/register", "${workspaceRoot}/test/**/*.spec.ts", "--no-timeouts"],
"cwd": "${workspaceRoot}"
}
关于unit-testing - 如何使用 Visual Studio Code 中的 Mocha 调试用 Typescript 编写的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43014042/