我有一个像这样的测试文件:(我正在使用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();
})
和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"
}
}
当我跑步&#34; jest --updateSnapshot&#34;我明白了:
command not found: jest
但安装了jest。
答案 0 :(得分:28)
Jest
,但可能位于./node_modules/.bin
目录中。您可以将其附加到命令./node_modules/.bin/jest --updateSnapshot
。由于您在jest
中已经scripts
作为package.json
命令,因此您也可以使用npm test -- --updateSnapshot
运行该命令。 npm会自动将./node_modules/.bin
添加到您的路径中。
答案 1 :(得分:8)
你需要以这种方式运行它:
./node_modules/.bin/jest
或运行npm test
答案 2 :(得分:2)
安装Jest命令行界面(Jest CLI):
npm install --save-dev jest-cli
然后运行jest命令。 Windows 10上的docker在linux实例中为我工作。
答案 3 :(得分:2)
我遇到了类似的问题。我通过在全球范围内安装笑话来修复它。
npm install -g jest
答案 4 :(得分:1)
就我而言,npm由于某种原因未安装jest
命令。
要解决此问题:
node_modules/jest
目录npm install
,并安装了jest
命令。答案 5 :(得分:1)
删除node_modules并运行npm install
再次为我解决了此问题
此外,“ new” npm ci
命令可以解决此问题,因为它每次删除(或清除)节点模块并执行全新安装,并且与手动删除node_modules
和重新安装
答案 6 :(得分:1)
安装笑话并尝试使用命令zsh: command not found: jest
后,我得到了jest
。适用于我的解决方案正在运行npx jest
答案 7 :(得分:0)
只需使用命令
npm test
或npm t
答案 8 :(得分:0)
在安装了jest之后只需重新加载bash配置文件即可:
source ~/.bashrc # on linux ?
source ~/.bash_profile # on macOs
玩笑不会被识别,但是会自动用npx玩笑执行
答案 9 :(得分:0)
我的情况是由我的git管道引起的。我既没有缓存node_modules
,也没有缓存未跟踪的文件。
我最终添加了
cache:
# untracked: true
key:
files:
- package-lock.json
paths:
- node_modules
到我的管道.yml和violá
注意
您可以使用path
或untracked
,find out more about each来查看最适合您的
答案 10 :(得分:0)
您可以使用 npx jest [parameters]
运行测试。 npx
是包运行程序。它将帮助您执行本地安装的包。