command not found: jest

JavascriptReactjsJestjs

Javascript Problem Overview


I have a test file like so: (I am using create-react-app)

import React from 'react';
import ReactDOM from 'react-dom';
import App from './components/Calculator';

import { getAction, getResult } from './actions/'

import {shallow} from 'enzyme';
import toJson from 'enzyme-to-json';

import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';

Enzyme.configure({ adapter: new Adapter() });

it('renders without crashing', () => {
  const wrapper = shallow(<App />)
  expect(toJson(wrapper)).toMatchSnapshot();
});

it('displays the choosen operator', () => {
  const action = {
      type: 'GET_ACTION',
      operator: '+'
    };
  expect(getAction("+")).toEqual(action)
})

it('displays the typed digit', () => {
  const action = {
    type: 'GET_RESULT',
    n: 3
  };
  expect(getResult(3)).toEqual(action);
})

it('checks that the clickevent for getNumber is called',() => {
  const clickEvent = jest.fn();
  const p = shallow(<p data-n="1" onClick={clickEvent}>1</p>)
  p.simulate('click')
  expect(clickEvent).toBeCalled();
})

and a packaje.json:

{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "react": "^16.2.0",
    "react-dom": "^16.2.0",
    "react-scripts": "1.1.1"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    // "test": "react-scripts test --env=jsdom",
    "test": "jest",
    "eject": "react-scripts eject"
  },
  "devDependencies": {
    "enzyme": "^3.3.0",
    "enzyme-adapter-react-16": "^1.1.1",
    "enzyme-to-json": "^3.3.3",
    "jest": "^22.4.3"
  }
}

when I run "jest --updateSnapshot" I get:

command not found: jest

but jest is installed.

enter image description here

Javascript Solutions


Solution 1 - Javascript

Jest is installed, but is likely in your ./node_modules/.bin directory. You can append that to your command ./node_modules/.bin/jest --updateSnapshot. Since you already have jest as a scripts command in your package.json you can also run it with npm test -- --updateSnapshot. npm automatically adds ./node_modules/.bin to your path.

update: Newer versions of yarn will resolve node module bin scripts, so you can also just run yarn jest {cmd} and it should work.

Solution 2 - Javascript

I ran into similar issue. I fixed it by installing jest globally.

npm install -g jest

Solution 3 - Javascript

You need to run it this way :

./node_modules/.bin/jest

or run npm test

Solution 4 - Javascript

Install the Jest command-line interface (Jest CLI):

npm install --save-dev jest-cli

Then run the jest command. Working for me in a linux instance by docker on Windows 10.

Solution 5 - Javascript

I was getting zsh: command not found: jest after installing jest and trying to use the command jest. The solution that worked for me was running npx jest

Solution 6 - Javascript

In my case, npm didn't install the jest command for some reason.

To fix this:

  1. I deleted the node_modules/jest directory
  2. Re-ran npm install and got the jest command installed.

Solution 7 - Javascript

just use command

npm test or npm t

Solution 8 - Javascript

try using the command

npx jest <folder>

I ran into the same problem. I tried multiple solutions and this worked.

I also have jest CLI installed

you can install it by using this command in your shell

npm install --save-dev jest-cli

Solution 9 - Javascript

My situation was caused by my git pipeline. I wasn't caching node_modules nor was I caching untracked files.

Ultimately I added

cache:
  # untracked: true
  key:
    files:
      - package-lock.json
  paths:
    - node_modules

to my pipeline .yml and violá

Note

you can either use path OR untracked, find out more about each to see what works best for you

Solution 10 - Javascript

Removing node_modules and running npm install again fixed this for me Also the "new" npm ci command can fix this as it deletes (or clears) node modules and performs a clean install each time, plus it's faster compared to manually deleting node_modules and re-installing

Solution 11 - Javascript

Just reload your bash config file after install jest:

source ~/.bashrc # on linux ?
source ~/.bash_profile # on macOs

Jest will be not recognized but executed with npx jest automatically

Solution 12 - Javascript

I use yarn. Adding jest and jest-cli to node_modules did not make any difference with my attempts to run tests like jest mytest.test.js. In addition to mentioned steps, the following helped to get it running:

yarn jest mytest.test.js

Solution 13 - Javascript

you can run ln -s ./node_modules/.bin/jest jest and then run jest --init it will work. Or you can install jest cli with npm install --save-dev jest-cli and then run jest --init it will also work.

Solution 14 - Javascript

In my case, I was trying to install jest with yarn on a pipeline to run tests and since I had jest installed as a devDependency it wasn't installing on yarn install.

I found this bug on GitHub https://github.com/yarnpkg/yarn/issues/2739 that it seems that Yarn will not install devDependencies when NODE_ENV=production.

I just needed to change the NODE_ENV and after that, it was working, otherwise, run it like this:

yarn install --production=false

Solution 15 - Javascript

You can run the test using npx jest [parameters]. npx is the package runner. It will help you execute a locally installed package.

Solution 16 - Javascript

Had the same issue and was able to solve it by running npm install

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAessandroView Question on Stackoverflow
Solution 1 - JavascriptCaptEmulationView Answer on Stackoverflow
Solution 2 - JavascriptSidd ThotaView Answer on Stackoverflow
Solution 3 - JavascriptHamza El AoutarView Answer on Stackoverflow
Solution 4 - JavascriptsybozzView Answer on Stackoverflow
Solution 5 - JavascriptcJilbert504View Answer on Stackoverflow
Solution 6 - JavascripttywhangView Answer on Stackoverflow
Solution 7 - Javascriptаlex dykyіView Answer on Stackoverflow
Solution 8 - JavascriptMuhammad Zeeshan EjazView Answer on Stackoverflow
Solution 9 - JavascriptJacksonkrView Answer on Stackoverflow
Solution 10 - JavascriptkidrocaView Answer on Stackoverflow
Solution 11 - JavascriptDiego UlloaView Answer on Stackoverflow
Solution 12 - JavascriptRomanView Answer on Stackoverflow
Solution 13 - JavascriptIsmael AntonioView Answer on Stackoverflow
Solution 14 - JavascriptabranheView Answer on Stackoverflow
Solution 15 - JavascriptHien NguyenView Answer on Stackoverflow
Solution 16 - JavascriptAbdul-HammidView Answer on Stackoverflow