setupTests.js не загружается автоматически в приложении CRA реакции

Я прочитал, что src/setupTests.js должен загружаться перед каждым тестом, но я все равно получаю каждый тест, терпящий неудачу с ошибкой:

"Enzyme Internal Error: Enzyme ожидает, что адаптер будет настроен, но не найден".

это мой src/setupTests.js

import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import 'whatwg-fetch';

Enzyme.configure({ adapter: new Adapter() });

Вот мой package.json:

"devDependencies": {
"babel-core": "^6.26.3",
"babel-jest": "^23.6.0",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "^6.24.1",
"coveralls": "^3.0.2",
"enzyme": "^3.7.0",
"enzyme-adapter-react-16": "^1.6.0",
"enzyme-to-json": "^3.3.4",
"jest": "^23.6.0",
"react-test-renderer": "^16.5.2",
"redux-mock-store": "^1.5.3",
"regenerator-runtime": "^0.12.1",
"whatwg-fetch": "^3.0.0"
}

Я запускаю "тестовый" скрипт через npm run test

"scripts": {
  "test": "jest",
  "test:watch": "jest --watch",
  "test:updateSnapshots": "jest --updateSnapshot"
}

Я начинаю каждый тестовый файл с некоторой формы следующего:

import React from 'react';
import { shallow } from 'enzyme';

Я нахожусь на React 16 с реактивными скриптами 2.1.1

Я делаю что-то неправильно, что кто-то может видеть?

1 ответ

Это работает, когда вы добавляете следующее в ваш package.json

"scripts": {
  ...
  "test": "react-scripts test",
  ...

}

Обновите package.json.

"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test setupFile ./src/setupTests.js",
    "eject": "react-scripts eject"
  }

Я оказался здесь с той же ошибкой, но по другой причине:

В названии файла была опечатка:

  • src/setupTest.js вместо src/setupTest*s*.js

Затем CRA по умолчанию (creat-react-app) package.json команда загружает адаптер в ваш тест:

  • "test": "react-scripts test"

Это должно работать с этой конфигурацией. Как и та же конфигурация работает в моем приложении. Попробуйте поместить импорт в тестовый файл.

import "../setupTests"

Иногда это работает.

Если вы создали файл setupTests.js в режиме просмотра в приложении create-response-app npm test script, то вам нужно выйти из режима просмотра и перезапустить его, чтобы он начал работать.

Другие вопросы по тегам