我正在尝试将Ava(从mocha迁移)作为我的反应/电子应用程序的测试运行器。
我的package.json
中有这个配置 "ava": {
"files": [
"./app/**/*.spec.js"
],
"source": [
"./app/**/*.{js,jsx}"
],
"concurrency": 5,
"failFast": true,
"require": [
"babel-register",
"ignore-styles",
"./app/test/setup.js"
],
"babel": {
"presets": [
"es2015",
"react"
]
}
},
我的setup.js只是帮助设置jsdom。
我一直收到错误:
(function (exports, require, module, __filename, __dirname) { import { jsdom } from 'jsdom';
^^^^^^
SyntaxError: Unexpected token import
因此似乎没有正确要求babel-register
。
答案 0 :(得分:1)
你可能已经找到了答案,但我会分享我的解决方案。对我来说,就是将babel
部分移到ava
部分旁边,如下所示:
{
"ava": { ... ava config ... },
"babel": { ... babael config ... }
}
完整示例
{
"ava": {
"files": [
"./app/**/*.spec.js"
],
"source": [
"./app/**/*.{js,jsx}"
],
"concurrency": 5,
"failFast": true,
"require": [
"babel-register",
"ignore-styles",
"./app/test/setup.js"
]
},
"babel": {
"babelrc": false,
"presets": [
"es2015",
"react"
]
}
}
原因是这是babel搜索的内容。 package.json
配置或.babelrc
文件。