Last active
January 9, 2025 16:43
-
-
Save esamattis/600d6964f3e6ab6e8e7da9a05bfe6574 to your computer and use it in GitHub Desktop.
Debug jest tests in vscode with pnpm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"version": "0.2.0", | |
"configurations": [ | |
{ | |
"type": "node", | |
"request": "launch", | |
"name": "Jest Current File", | |
"runtimeExecutable": "sh", // <-- The important bit! | |
"program": "node_modules/.bin/jest", | |
"args": ["${relativeFile}"], | |
"console": "integratedTerminal", | |
"internalConsoleOptions": "openOnFirstSessionStart" | |
} | |
] | |
} |
🎉
Thank you so much for posting this!
LEGEND! Thank you for this. I just spent way too much time trying to figure out how to be able to debug freaking typescript jest tests in a project (new job). For what it's worth, I simply:
- installed the Orta.vscode-jest plugin
- hit
CMD+SHIFT+P
(CTRL+SHIFT+P
for PC) and choseJest: Setup Extension > Setup Jest Debug Config
- added
"runtimeExecutable": "sh",
to that generated config in thelaunch.json
Oh and also, do NOT change the name of the auto-generated launch config. The extension appears to locate the debug configuration by that name, and that name only.
Great job!
Such configuration was not exactly working for me, but I figured out this, and it worked for me. I'm using Jest with ESM modules, pnpm, and Orta's extension (Orta.vscode-jest
):
{
"type": "node",
"name": "vscode-jest-tests.v2",
"request": "launch",
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"env": {
"NODE_OPTIONS": "--experimental-vm-modules --no-warnings"
},
"runtimeExecutable": "pnpm",
"cwd": "${workspaceFolder}",
"args": [
"jest",
"-c",
"${workspaceRoot}/jest.config.mjs",
"--runInBand",
"--watchAll=false",
"--testNamePattern",
"${jest.testNamePattern}",
"--runTestsByPath",
"${jest.testFile}"
]
}
Of course, args are arbitrary and refer to the configuration I use. But this let me also debug the single tests.
BTW, I also have this in my settings.json
to let it run:
{
"jest.jestCommandLine": "NODE_OPTIONS=\"--experimental-vm-modules --no-warnings\" pnpm jest -c jest.config.mjs --runInBand"
}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
https://twitter.com/esamatti/status/1519338647857860609
fix for