【发布时间】:2020-09-27 17:30:42
【问题描述】:
是否有人使用start-server-and-test 成功调试了他们的测试,并在Visual Studio Code 中激活了断点?我正在使用 start-server-and-test 来启动 docker-compose 堆栈。一旦 docker-compose 堆栈成功启动,Jest 测试就会开始运行。
我可以在终端会话中成功运行它。但是,如果可能,我想从 VSCode 中的 launch.json 触发它,并能够在断点处停止。我尝试过使用以下 launch.json 配置项:
{
"name": "Debug e2e tests",
"type": "node",
"request": "launch",
"cwd": "${workspaceRoot}",
"program": "${workspaceRoot}/node_modules/.bin/start-server-and-test",
"args": [
"docker-compose -f ./tests/docker/docker-compose.yml up",
"http://localhost:8080/ping",
"${workspaceRoot}/node_modules/.bin/jest -i --config=./tests/e2e/jest.config.js"
],
"runtimeArgs": [
"--inspect-brk"
],
"protocol": "inspector",
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
这将启动 docker-compose 堆栈,然后测试开始在 VSCode 的集成终端会话中运行。但是,在 VSCode 中没有遇到断点。
VSCode运行调试器时会生成如下命令:
/usr/local/bin/node --inspect-brk=44745 node_modules/.bin/start-server-and-test "docker-compose -f ./tests/docker/docker-compose.yml up" http://localhost:8080/ping "/Users/simon/Development/Projects/ObjectDetection_Mqtt_Plugin/node_modules/.bin/jest -i --config=./tests/e2e/jest.config.js"
如果我尝试从终端会话中运行 e2e 测试脚本,则测试会在 docker-compose 堆栈成功启动后按预期开始运行:
# package.json extract to include script for running e2e tests
"scripts": {
"test:e2e": "start-server-and-test 'docker-compose -f ./tests/docker/docker-compose.yml up' http://localhost:8080/ping 'jest --config=./tests/e2e/jest.config.js'",
}
# run the e2e tests
yarn run test:e2e
也试过这个:
{
"name": "Debug node script",
"type": "node",
"request": "launch",
"runtimeExecutable": "yarn",
"runtimeArgs": [
"run",
"vscode"
],
"restart": true,
"port": 9229,
"protocol": "inspector",
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"disableOptimisticBPs": true,
"internalConsoleOptions": "neverOpen"
}
使用此脚本:
"vscode": "start-server-and-test 'docker-compose -f ./tests/docker/docker-compose.yml up' http://localhost:8080/ping 'node --inspect-brk ./node_modules/.bin/jest --config=./tests/e2e/jest.config.js'"
同样的结果...
【问题讨论】:
标签: node.js visual-studio-code jestjs