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 package.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.
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.
You need to run it this way :
./node_modules/.bin/jest
or run npm test
I ran into similar issue. I fixed it by installing jest globally.
npm install -g jest
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.
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
In my case, npm didn't install the jest
command for some reason.
To fix this:
node_modules/jest
directorynpm install
and got the jest
command installed.just use command
npm test
or npm t
A way to solve the error is to use the "npx" command.
npx jest --version
npx jest --init
删除 node_modules 并再次运行npm install
为我解决了这个问题 “新的” npm ci
命令也可以解决这个问题,因为它删除(或清除)节点模块并每次执行全新安装,而且与手动删除node_modules
和重新安装相比,它更快安装
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
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
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.
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
You can run the test using npx jest [parameters]
. npx
is the package runner. It will help you execute a locally installed package.
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
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
Had the same issue and was able to solve it by running npm install
Faced the same issue. But it was due to the wrong node version. If you use the latest jest v29
, you need Node version 14 or higher.
Alternatively, just add jest module to package.json
dependencies.
{
"dependencies": {
...
"jest": "^29.3.1",
...
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.