我正在尝试使用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文件路径错误,但是如何在本地工作?
如果我不将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"
}
}
我在做什么错? 帮助非常感谢!
答案 0 :(得分:0)
问题似乎出在我的客户端和API与不同的package.json放在同一个仓库中。我为客户端和API分配了不同的存储库,而我不再遇到该问题了。