web-dev-qa-db-fra.com

commande non trouvée: plaisanterie

J'ai un fichier test comme suit: (J'utilise 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();
})

et un 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"
  }
}

quand je lance "jest --updateSnapshot" je reçois:

command not found: jest

mais jest est installé.

enter image description here

20
Alex

Jest est installé, mais est probablement dans votre ./node_modules/.bin répertoire. Vous pouvez ajouter cela à votre commande ./node_modules/.bin/jest --updateSnapshot. Puisque vous avez déjà jest en tant que commande scripts dans votre package.json vous pouvez aussi l'exécuter avec npm test -- --updateSnapshot. npm ajoute automatiquement ./node_modules/.bin sur votre chemin.

37
CaptEmulation

Vous devez l'exécuter de cette façon:

./node_modules/.bin/jest

ou courir npm test

13
El Aoutar Hamza

Installez l'interface de ligne de commande Jest (CLI Jest):

npm install --save-dev jest-cli

Ensuite, exécutez la commande Jest. Travailler pour moi dans une instance linux avec docker sous Windows 10.

6
sybozz

Je suis tombé sur un problème similaire. Je l'ai corrigé en installant blague globalement.

npm install -g jest
3
Siddhartha Thota

Suppression de node_modules et exécution de npm install encore corrigé cela pour moi Aussi le "nouveau" npm ci La commande peut résoudre ce problème car elle supprime (ou efface) les modules de nœud et effectue une installation propre à chaque fois. De plus, elle est plus rapide que la suppression manuelle de node_modules et ré-installation

1
kidroca

Dans mon cas, npm n'a pas installé la commande jest pour une raison quelconque.

Pour résoudre ce problème:

  1. J'ai supprimé le node_modules/jest répertoire
  2. Re-run npm install et la commande jest est installée.
1
tywhang

juste utiliser la commande

npm test ou npm t

1
аlex dykyі