node.js - Kan ikke koble til en debugger mens jest-tester kjøres
Jeg klarer ikke å koble VS Code-debuggeren mens jeg kjører jest-tester. Jeg prøvde å konfigurere launch.json-filen med forskjellige alternativer jeg fant, men de mislykkes alltid med følgende feilmelding, som klager på en fil i node_modules-mappen:
Debugger attached.
Waiting for the debugger to disconnect...
local\path\to\node_modules\.bin\jest:2
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
^^^^^^^
SyntaxError: missing ) after argument list
at wrapSafe (internal/modules/cjs/loader.js:979:16)
at Module._compile (internal/modules/cjs/loader.js:1027:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47
Min package.json-fil har følgende konfigurasjon:
"scripts": {
"compile": "tsc",
"run": "node ./build/index.js",
"execute": "tsc && node ./build/index.js",
"test": "tsc && jest ./build/tests/*"
},
"author": "roguib",
"license": "ISC",
"dependencies": {
"@types/jest": "^26.0.20",
"ts-jest": "^26.5.1",
"ts-node": "^9.1.1"
},
"devDependencies": {
"@types/node": "^14.14.21",
"jest": "^26.6.3"
}
Min launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug Jest Tests",
"type": "node",
"request": "launch",
"runtimeArgs": ["--inspect-brk", "${workspaceRoot}/node_modules/.bin/jest", "--runInBand"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
]
}
kilde
Hvis det hjelper, kjører npm run test normalt mine jest-tester, så jeg er usikker på om det er noe relatert til selve jest.
Svar #1
Det ser ut til å være en feil på Windows, og løsningen er å peke VS Code direkte til jest.js i stedet for .bin-versjonen:
Så prøv å erstatte dette:
"runtimeArgs": ["--inspect-brk", "$ {workspaceRoot}/node_modules/.bin/jest", "--runInBand"], med noe som:
"runtimeArgs": ["--inspect-brk", "${workspaceRoot}/node_modules/jest/bin/jest.js", "--runInBand", "--coverage", "false"],https://github.com/facebook/jest/issues/3750
Også, hvis du får en annen feil angående jest-konfigurasjon, legg til -c-argumentet:
"args": [
"--runInBand",
"-c", "${workspaceFolder}/package/jest.config.js",
],
Svar #2
Jeg løste problemet ved å installere ts-jest og bruke følgende konfigurasjon i launch.json.
{
"type": "node",
"request": "launch",
"name": "Jest All",
"program": "${workspaceFolder}/node_modules/.bin/jest",
"args": [
"--runInBand"
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"disableOptimisticBPs": true,
"windows": {
"program": "${workspaceFolder}/node_modules/jest/bin/jest",
}
},
Kilde.
