そのため、avaには ES2015の組み込みサポート が付属しています。これは、実際のテストファイルでは問題なく機能します。しかし、私がするとき
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
そのまま使用できるテストファイルについては、特定のバベル構成を設定していません。ヘルパーの依存関係がバベルで解決されない理由を誰かに説明できますか? test/**/helpers
の使用は ava規則 にも従います。
ありがとう、ロビン
ソリューション
だから thangngoc89 の解決策に基づいて、それを機能させるために私がやったことは:
.babelrc
とコンテンツを追加:{
"presets": [
"es2015",
"stage-2"
],
"plugins": [
"espower",
"transform-runtime"
]
}
package.json
に追加:"ava": {
"require": ["babel-register"],
"babel": "inherit"
}
AVAはテストファイルのみをトランスパイルします。依存関係をテストしないので、プロジェクトでbabelをセットアップする必要があります(とにかくES6を使用しているため、そうしたはずです)。
次に、AVAの設定で、これを追加します。
"ava" {
...
"babel": "inherit"
}
つまり、プロジェクトのバベル設定を使用して、テストの依存関係をトランスパイルします。 AVAのドキュメントで詳細をご覧ください: https://github.com/sindresorhus/ava/blob/master/docs/recipes/babelrc.md
rweng を使用すると、私のソリューションは少し単純になります。
.babelrc
{
"presets": [
"es2015"
],
"plugins": [
"transform-runtime"
]
}
package.json
:"ava": {
"require": ["babel-register"],
"babel": "inherit"
}
残念ながら、私の場合、標準的な解決策は機能しませんでした。これは、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"
}
モジュールのインストール
yarn add babel-register babel-preset-es2017 @ava/babel-preset-stage-4 babel-plugin-transform-runtime babel-preset-stage-3 --dev