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é.
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.
Vous devez l'exécuter de cette façon:
./node_modules/.bin/jest
ou courir npm test
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.
Je suis tombé sur un problème similaire. Je l'ai corrigé en installant blague globalement.
npm install -g jest
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
Dans mon cas, npm n'a pas installé la commande jest
pour une raison quelconque.
Pour résoudre ce problème:
node_modules/jest
répertoirenpm install
et la commande jest
est installée.juste utiliser la commande
npm test
ou npm t