命令未找到:jest

时间:2018-05-02 15:41:01

标签: javascript reactjs jestjs

我有一个像这样的测试文件:(我正在使用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。

enter image description here

11 个答案:

答案 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命令。

要解决此问题:

  1. 我删除了node_modules/jest目录
  2. 重新运行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 testnpm 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á

注意

您可以使用pathuntrackedfind out more about each来查看最适合您的

答案 10 :(得分:0)

您可以使用 npx jest [parameters] 运行测试。 npx 是包运行程序。它将帮助您执行本地安装的包。