AVA + React-Native 的测试配置
Test config for AVA + React-Native
我尝试使用 AVA and the babel-preset-react-native
测试我的 react-native 应用程序
我的配置如下所示:
"scripts": {
"test": "ava"
},
"ava": {
"files": [
"src/**/__tests__/*.js"
],
"failFast": true,
"require": [
"react-native-mock/mock.js",
"babel-register"
],
"babel": {
"presets": [
"react-native"
]
}
},
"devDependencies": {
"ava": "^0.13.0",
"babel-preset-react-native": "^1.2.4",
"babel-register": "~6.4.3",
"react-native-mock": "0.0.6"
}
…像这样失败了:
/Users/zoon/Projets/xxxxx/node_modules/babel-register/node_modules/babel-core/lib/transformation/file/index.js:556
throw err;
^
SyntaxError: /Users/zoon/Projets/xxxxx/src/reducers/env.js: Unexpected token (12:8)
10 | case types.RECEIVE_CHANGE_ENV:
11 | return {
> 12 | ...state,
| ^
13 | current: Environments[action.env]
14 | };
15 | default:
如果我在 .babelrc 文件中导出这个 babel 配置并在我的 AVA 配置中使用 "babel": "inherit",它会以另一种方式失败:
/Users/zoon/Projets/xxxxx/node_modules/lodash-es/lodash.js:10
export { default as add } from './add';
^^^^^^
SyntaxError: Unexpected token export
我不明白如何正确配置它。我试过摩卡,遇到了同样的问题。
babel-register
默认忽略 node_modules
。您可以在 .babelrc
中设置 ignore:false
以禁用该行为。您还可以(可能应该)指定一个更有限的正则表达式,以避免处理 everything in node_modules
.
查看文档:https://babeljs.io/docs/usage/require/
您的完整配置可能如下所示:
.babelrc
{
"presets": ["react-native"],
"ignore": false
}
package.json
{
"ava": {
"babel": "inherit"
}
}
我尝试使用 AVA and the babel-preset-react-native
测试我的 react-native 应用程序我的配置如下所示:
"scripts": {
"test": "ava"
},
"ava": {
"files": [
"src/**/__tests__/*.js"
],
"failFast": true,
"require": [
"react-native-mock/mock.js",
"babel-register"
],
"babel": {
"presets": [
"react-native"
]
}
},
"devDependencies": {
"ava": "^0.13.0",
"babel-preset-react-native": "^1.2.4",
"babel-register": "~6.4.3",
"react-native-mock": "0.0.6"
}
…像这样失败了:
/Users/zoon/Projets/xxxxx/node_modules/babel-register/node_modules/babel-core/lib/transformation/file/index.js:556
throw err;
^
SyntaxError: /Users/zoon/Projets/xxxxx/src/reducers/env.js: Unexpected token (12:8)
10 | case types.RECEIVE_CHANGE_ENV:
11 | return {
> 12 | ...state,
| ^
13 | current: Environments[action.env]
14 | };
15 | default:
如果我在 .babelrc 文件中导出这个 babel 配置并在我的 AVA 配置中使用 "babel": "inherit",它会以另一种方式失败:
/Users/zoon/Projets/xxxxx/node_modules/lodash-es/lodash.js:10
export { default as add } from './add';
^^^^^^
SyntaxError: Unexpected token export
我不明白如何正确配置它。我试过摩卡,遇到了同样的问题。
babel-register
默认忽略 node_modules
。您可以在 .babelrc
中设置 ignore:false
以禁用该行为。您还可以(可能应该)指定一个更有限的正则表达式,以避免处理 everything in node_modules
.
查看文档:https://babeljs.io/docs/usage/require/
您的完整配置可能如下所示:
.babelrc
{
"presets": ["react-native"],
"ignore": false
}
package.json
{
"ava": {
"babel": "inherit"
}
}