Фермент не может найти файл setupTests для приложения React при использовании Travis CI - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь развернуть приложение React (с экспрессом на сервере) на Heroku, используя Travis for CI.Все тесты проходят локально, но у меня проблема с энзимом.Для каждого протестированного компонента я получаю это сообщение на Travis:

FAILsrc / tests / HomePage.test.js

● Не удалось запустить набор тестов

Не удается найти модуль "../../src/setupTests" из "HomePage.test.js" в Resolver.resolveModule (node_modules / реагировать-scripts / node_modules / jest-> resol / build / index.js: 179: 17) на объекте.(src / tests / HomePage.test.js: 3: 1)

Похоже, мой путь к файлу setupTests.js указан неверно, но как он может работать локально?

введите описание изображения здесь

Если я не импортирую файл setupTests для каждого тестируемого компонента, я получаю это сообщение об ошибке:

Enzyme Internal Error: Enzyme ожидает, что адаптер настроен, но >> не нашел ни одного.Чтобы настроить адаптер, вы должны вызвать Enzyme.configure({ adapter: new Adapter() }) перед использованием любого из API-интерфейсов верхнего уровня Enzyme, где Adapter - это адаптер, соответствующий тестируемой в данный момент библиотеке.Например: импортировать Адаптер из 'фермент-адаптер-реактив-15';

Вот как я настроил Трэвиса:

language: node_js
node_js: node
services:
- mongodb
cache:
  directories:
  - node_modules
env:
  - CI=true

script: 
  - cd server && npm install && npm test
  - cd ../client && npm install && npm run build && npm test
deploy:
  provider: heroku
  api_key:
    secure: MY-API-KEY
  app: MY-APP-NAME
  on:
    repo: MY-REPO

My setupTests.js

import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import { configure } from 'enzyme'

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

Мой пакет.json:

{
  "name": "central",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "enzyme-adapter-react-16": "^1.3.1",
    "jwt-decode": "^2.2.0",
    "material-ui": "^0.20.2",
    "moment": "^2.22.2",
    "prop-types": "^15.6.2",
    "react": "^16.4.1",
    "react-dom": "^16.4.1",
    "react-redux": "^5.0.7",
    "react-router-dom": "^4.3.1",
    "react-stripe-checkout": "^2.6.3",
    "redux": "^4.0.0",
    "redux-form": "^7.4.2",
    "redux-thunk": "^2.3.0",
    "socket.io-client": "^2.1.1",
    "validator": "^10.7.1"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "proxy": "http://localhost:8080",
  "devDependencies": {
    "enzyme": "^3.5.0",
    "mock-local-storage": "^1.0.5",
    "react-scripts": "^1.1.4",
    "react-test-renderer": "^16.4.2"
  }
}

Что я делаю не так?Помощь очень ценится!

1 Ответ

0 голосов
/ 08 октября 2018

Кажется, проблема возникла из-за того, что у меня были клиент и API в одном репо с различными пакетами. Json.Я назначил разные репозитории клиенту и API и больше не сталкиваюсь с этой проблемой.

...