所以ava附带build-in ES2015 support,它适用于我的实际测试文件。但是,当我做的时候
import {newUser, createUser, login} from './helpers/user';
我无法使用import
并在帮助文件中导出,然后我得到:
Users/rowe/Code/fv/foxvision-api/test/api/helpers/user.js:1
(function (exports, require, module, __filename, __dirname) { import request from 'supertest';
SyntaxError: Unexpected token import
我没有设置特定的babel配置,因为它开箱即用的测试文件。任何人都可以向我解释为什么帮助器依赖关系不会被babel转换?使用test/**/helpers
甚至关注ava convention。
谢谢, 罗宾
解决方案
基于thangngoc89的解决方案,我所做的工作是:
.babelrc
的内容:{
"presets": [
"es2015",
"stage-2"
],
"plugins": [
"espower",
"transform-runtime"
]
}
package.json
:"ava": {
"require": ["babel-register"],
"babel": "inherit"
}
答案 0 :(得分:20)
AVA只会传输测试文件。不测试依赖项,因此您需要在项目中设置babel(我想你是因为你正在使用ES6而这样做了。)
然后在AVA的设置中,添加:
"ava" {
...
"babel": "inherit"
}
这意味着使用项目babel设置来转换测试依赖项。请参阅AVA文档中的更多信息:https://github.com/sindresorhus/ava/blob/master/docs/recipes/babelrc.md
答案 1 :(得分:2)
使用Running MATLAB from Python,我的解决方案变得更简单了。
.babelrc
{
"presets": [
"es2015"
],
"plugins": [
"transform-runtime"
]
}
package.json
:"ava": {
"require": ["babel-register"],
"babel": "inherit"
}
答案 2 :(得分:2)
不幸的是,标准解决方案对我的案例不起作用。 这是我的解决方案,适用于ava + quasar + vue项目
<强> .babelrc 强>
{
"presets": [
"es2017",
"@ava/stage-4",
"stage-3"
],
"plugins": [
"transform-runtime"
]
}
<强>的package.json 强>
"ava": {
"require": [
"babel-register"
],
"babel": "inherit"
},
"scripts": {
"ava": "NODE_ENV=test ava",
"test": "ava",
"test:watch": "ava --watch --verbose"
}
安装模块
yarn add babel-register babel-preset-es2017 @ava/babel-preset-stage-4 babel-plugin-transform-runtime babel-preset-stage-3 --dev