vscode-jest
vscode-jest copied to clipboard
zsh: command not found "npm"
Environment
-
vscode-jest version
: 6.0.1 -
node -v
: 18.12.1 -
npm -v
oryarn --version
: 8.19.2 -
npm ls jest
: [email protected] - your vscode-jest settings if customized:
- jest.autoRun? "off"
- Operating system: Linux Manjaro
Prerequisite
- are you able to run jest test from the command line? Yes
- how do you run your tests from the command line? (for example:
npm run test
ornode_modules/.bin/jest
)npm run test
Steps to Reproduce
Just create a minimal project and add Jest and the vscode-jest extension and I got an error.
If I run code .
inside a terminal, the extension works fine.
Expected Behavior
Run vscode extension
Actual Behavior
Jest (clean-react)
[info] auto config:
found:
rootPath: /home/guilherme/Development/clean-react
jestCommandLine: npm test --
[warn] possible process env issue detected, restarting with a login-shell...
zsh: command not found: npm
[error] failed to retrieve test file list. TestExplorer might show incomplete test items
[info] jest process failed to start, most likely due to env or project configuration issues, please see: https://github.com/jest-community/vscode-jest/blob/master/README.md#jest-failed-to-run
Hmm, this sounded like a typical shell env issue. Usually fixed by restarting with a login shell... Do you happen to have jest.shell
configured? If you are using zsh
, try to set it to zsh
to see if that makes any difference. Does this happen every time you start vscode? Or only when vscode got updated, i.e. one time thing?
Hmm, this sounded like a typical shell env issue. Usually fixed by restarting with a login shell... Do you happen to have
jest.shell
configured? If you are usingzsh
, try to set it tozsh
to see if that makes any difference. Does this happen every time you start vscode? Or only when vscode got updated, i.e. one time thing?
I have these configuration.
"jest.shell": "zsh",
"jest.autoRun": "off",
but always I open my vscode I got this issue.
Where do you set the PATH?
zsh has different setup files between login and interactive shells... if the env is set in the interactive shell mode (zshrc) then even using login shell will not source it. While you can try to make the shell login and interactive (by passing -l -i
), but I think the right solution might be either to move the critical env setup to the zshenv
file or otherwise manually source the zshrc before jest (either in your test script or jestCommandLine setting)