使用Travis CI

时间:2018-09-21 15:14:35

标签: reactjs heroku travis-ci enzyme

我正在尝试使用Travis for CI在Heroku上部署React应用程序(后端有Express)。所有测试都在本地通过,但是我在酶方面遇到问题。对于每个经过测试的组件,我都会在Travis上收到以下消息:

  

FAILsrc / tests / HomePage.test.js

     
    

●测试套件无法运行

         
      

无法从“ HomePage.test.js”中找到模块“ ../../src/setupTests”       在Resolver.resolveModule(node_modules / react-scripts / node_modules / jest-> resolve / build / index.js:179:17)       在对象。 (src / tests / HomePage.test.js:3:1)

    
  

看来我的setupTests.js文件路径错误,但是如何在本地工作?

enter image description here

如果我不将setupTests文件导入到我测试的每个组件中,则会收到以下错误消息:

  
    

酶内部错误:酶希望配置适配器,但>>找不到任何适配器。     要配置适配器,您应该致电Enzyme.configure({ adapter: new Adapter() })     在使用任何酶的顶级API之前,其中Adapter是     与当前正在测试的库相对应的适配器。例如:从'enzyme-adapter-react-15'导入适配器;

  

这是我配置Travis的方式:

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

我的setupTests.js

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

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

我的package.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 :(得分:0)

问题似乎出在我的客户端和API与不同的package.json放在同一个仓库中。我为客户端和API分配了不同的存储库,而我不再遇到该问题了。