在 VS Code 中为 Lerna 项目调试 Jest 测试
Debug Jest tests for Lerna project in VS Code
我想在 VS 代码中为使用 Lerna 的项目调试特定的 Jest 测试,因此有多个文件夹,每个文件夹都有自己的 node_modules 文件夹。在 this answer 的帮助下,我得到了以下 launch.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Jest watch",
"program": "${workspaceRoot}/my/specific/module/node_modules/jest/bin/jest.js",
"args": ["--verbose", "-i", "--no-cache", "--watchAll"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"cwd": "${workspaceFolder}/my/specific/module"
}
]
}
问题是我不得不在启动配置中放入模块的特定路径,所以每次我想调试其他东西时都必须更改它。
有更好的方法吗?也许使用在资源管理器中选择的文件夹?也许有一些方法可以通过右键单击测试文件来启动调试?
Lerna 允许您在根 node_modules
中拥有 npm 包,这些包会被提升到您的包中。也就是说,如果你在根 package.json
文件中将 jest 作为依赖项,你应该能够在每个包中进行 运行 测试。
我的 launch.json
配置如下。第一个配置 运行 是所有测试,第二个 运行 是当前在 VS Code 中打开的测试。
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Jest All",
"program": "${workspaceFolder}/node_modules/.bin/jest",
"args": [
"--runInBand", "--watchAll"
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"disableOptimisticBPs": true,
"windows": {
"program": "${workspaceFolder}/node_modules/jest/bin/jest",
}
},
{
"type": "node",
"request": "launch",
"name": "Jest Current File",
"program": "${workspaceFolder}/node_modules/.bin/jest",
"args": [
"${relativeFile}","--watchAll"
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"disableOptimisticBPs": true,
"windows": {
"program": "${workspaceFolder}/node_modules/jest/bin/jest",
}
}
]
非常感谢 dlac 的想法,我现在有一个可用的启动配置:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Jest watch",
"program": "${workspaceFolder}/node_modules/.bin/jest",
"args": ["--verbose", "-i", "--no-cache", "--watchAll"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"windows": {
"program": "${workspaceFolder}/node_modules/jest/bin/jest"
},
"cwd": "${fileDirname}"
}
]
}
我想在 VS 代码中为使用 Lerna 的项目调试特定的 Jest 测试,因此有多个文件夹,每个文件夹都有自己的 node_modules 文件夹。在 this answer 的帮助下,我得到了以下 launch.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Jest watch",
"program": "${workspaceRoot}/my/specific/module/node_modules/jest/bin/jest.js",
"args": ["--verbose", "-i", "--no-cache", "--watchAll"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"cwd": "${workspaceFolder}/my/specific/module"
}
]
}
问题是我不得不在启动配置中放入模块的特定路径,所以每次我想调试其他东西时都必须更改它。
有更好的方法吗?也许使用在资源管理器中选择的文件夹?也许有一些方法可以通过右键单击测试文件来启动调试?
Lerna 允许您在根 node_modules
中拥有 npm 包,这些包会被提升到您的包中。也就是说,如果你在根 package.json
文件中将 jest 作为依赖项,你应该能够在每个包中进行 运行 测试。
我的 launch.json
配置如下。第一个配置 运行 是所有测试,第二个 运行 是当前在 VS Code 中打开的测试。
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Jest All",
"program": "${workspaceFolder}/node_modules/.bin/jest",
"args": [
"--runInBand", "--watchAll"
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"disableOptimisticBPs": true,
"windows": {
"program": "${workspaceFolder}/node_modules/jest/bin/jest",
}
},
{
"type": "node",
"request": "launch",
"name": "Jest Current File",
"program": "${workspaceFolder}/node_modules/.bin/jest",
"args": [
"${relativeFile}","--watchAll"
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"disableOptimisticBPs": true,
"windows": {
"program": "${workspaceFolder}/node_modules/jest/bin/jest",
}
}
]
非常感谢 dlac 的想法,我现在有一个可用的启动配置:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Jest watch",
"program": "${workspaceFolder}/node_modules/.bin/jest",
"args": ["--verbose", "-i", "--no-cache", "--watchAll"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"windows": {
"program": "${workspaceFolder}/node_modules/jest/bin/jest"
},
"cwd": "${fileDirname}"
}
]
}