Donc, ava est livré avec prise en charge ES2015 intégrée , ce qui fonctionne bien pour mes fichiers de test réels. Cependant, quand je fais
import {newUser, createUser, login} from './helpers/user';
Je ne peux pas utiliser import
et exporter dans le fichier d'aide, j'obtiens alors:
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
Je n'ai aucune configuration babel spécifique mise en place quant aux fichiers de test, cela fonctionne hors de la boîte. Quelqu'un peut-il m'expliquer pourquoi les dépendances d'aide ne sont pas transposées avec babel? En utilisant test/**/helpers
suit même convention ava .
Merci, Robin
Solution
Donc, basé sur la solution de thangngoc89 , ce que j'ai fait pour le faire fonctionner était:
.babelrc
avec contenu:{
"presets": [
"es2015",
"stage-2"
],
"plugins": [
"espower",
"transform-runtime"
]
}
package.json
:"ava": {
"require": ["babel-register"],
"babel": "inherit"
}
AVA ne transpile que les fichiers de test. Ne testez pas les dépendances, vous devrez donc configurer babel dans votre projet (je suppose que vous l'avez fait parce que vous utilisez ES6 de toute façon).
Ensuite, dans le cadre d'AVA, ajoutez ceci:
"ava" {
...
"babel": "inherit"
}
Cela signifie que vous utilisez le paramètre babel de votre projet pour transpiler les dépendances de test. Voir plus d'informations dans les documents AVA: https://github.com/sindresorhus/ava/blob/master/docs/recipes/babelrc.md
En utilisant rweng , ma solution est sortie un peu plus simple.
.babelrc
{
"presets": [
"es2015"
],
"plugins": [
"transform-runtime"
]
}
package.json
:"ava": {
"require": ["babel-register"],
"babel": "inherit"
}
Malheureusement, la solution standard n'a pas fonctionné pour mon cas. Voici ma solution qui a fonctionné pour ava + quasar + vue project
. 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"
}
installer des modules
yarn add babel-register babel-preset-es2017 @ava/babel-preset-stage-4 babel-plugin-transform-runtime babel-preset-stage-3 --dev