在 Karma + jasmine 中 enzyme 的 setup 文件应该写在什么地方
昨天将项目更新到 React v16.0
,但是 CI 构建出现如下问题:
Error:
Enzyme Internal Error: Enzyme expects an adapter to be configured, but found none. To
configure an adapter, you should call `Enzyme.configure({ adapter: new Adapter() })`
before using any of Enzyme's top level APIs, where `Adapter` is the adapter
corresponding to the library currently being tested. For example:
import Adapter from 'enzyme-adapter-react-15';
To find out more about this, see http://airbnb.io/enzyme/docs/installation/index.html
查阅文档发现 Enzyme 3.0 Api 发生变化
按照官方的说法,需要在 setup file 中添加如下代码。
// http://airbnb.io/enzyme/docs/installation/react-16.html
// setup file
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
configure({ adapter: new Adapter() });
那么问题来了,应该添加到什么地方?
尝试添加到每个测试文件前,没有成功
尝试添加到 `karma.conf.js` 的 `files: []` 中,也没有成功。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
虽然没有在网上查到具体setup file具体作用,但是在github中通过下载一下别人的测试包会发现,setup.js多是包含了执行测试脚本前的准备工作
例如: mocha --compilers js:babel-core/register --require ./test/setup.js
setup.js中的代码为
`import jsdom from 'jsdom';
if (typeof document === 'undefined') {
global.document = jsdom.jsdom('<!doctype html><html><body></body></html>');
global.window = document.defaultView;
global.navigator = global.window.navigator;
}
`
以上均是个人猜测,希望可以帮到你
package.json
添加然后在指定位置添加
enzyme.config.js
这样所有的测试文件中就不用重复配置了
参考文档