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.

Relaterte artikler