我正在尝试使用React配置AVAj。
所以这是我在package.json中的AVA配置:
"ava": {
"files": [
"test/**/*.spec.js"
],
"sources": [
"**/*.{js,jsx}",
"!dist/**/*"
],
"concurrency": 4,
"failFast": true,
"failWithoutAssertions": false,
"tap": true,
"compileEnhancements": false,
"require": [
"@babel/core",
"@babel/register",
"@babel/polyfill"
],
"babel": {
"testOptions": {
"babelrc": false,
"testOptions": {
"presets": [
["@babel/preset-env", {
"targets": {
"node": "current"
}
}],
["@babel/preset-react", {
"pragma": "dom",
"pragmaFrag": "DomFrag",
"throwIfNamespace": false
}]
]
}
}
}
}
我的测试文件:
import test from 'ava';
import React from 'react';
import Enzyme, { shallow } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import Other from '../assets/js/components/Other';
Enzyme.configure({ adapter: new Adapter() });
test('has a .Foo class name', (t) => {
const wrapper = shallow(<Other />);
t.pass(wrapper);
});
无效:
{ presets: [{option: value}] }
有效:{ presets: [['presetName', {option: value}]] }
任何人都可以帮助我吗?
答案 0 :(得分:0)
您似乎正在使用AVA的1.0测试版。这使用Babel 7(本身处于测试阶段)来编译测试。但是,它扩展了使用不兼容预设的Babel配置。
您应该将整个项目升级到Babel 7(包括将babel-register
和babel-polyfill
替换为@babel/register
和@babel/polyfill
),或者自定义AVA&#39; { {1}}配置仅使用Babel 7插件(例如https://www.npmjs.com/package/@babel/preset-react)。
请注意,如果您选择采用后一种方法,则必须设置testOptions
以确保AVA仍然不包含与Babel 6兼容的配置。