vscode-jest icon indicating copy to clipboard operation
vscode-jest copied to clipboard

zsh: command not found "npm"

Open RigottiG opened this issue 1 year ago • 3 comments

Environment

  1. vscode-jest version: 6.0.1
  2. node -v: 18.12.1
  3. npm -v or yarn --version: 8.19.2
  4. npm ls jest: [email protected]
  5. your vscode-jest settings if customized:
    • jest.autoRun? "off"
  6. 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 or node_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

RigottiG avatar Sep 12 '23 14:09 RigottiG

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?

connectdotz avatar Sep 14 '23 19:09 connectdotz

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?

I have these configuration.

  "jest.shell": "zsh",
  "jest.autoRun": "off",

but always I open my vscode I got this issue.

RigottiG avatar Sep 15 '23 12:09 RigottiG

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)

connectdotz avatar Sep 15 '23 19:09 connectdotz