Ava babel-register没有转发

时间:2016-10-25 20:09:48

标签: javascript testing electron babel ava

我正在尝试将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

1 个答案:

答案 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文件。