8

我按照文档使用ava创建了我的第一个测试,但它似乎无法正常运行。我收到以下错误。我尝试import 'babel-register';在文件顶部添加,它可以工作,但前提是我运行一个特定的测试文件。例如ava ./test/helpers/test_helper.js。虽然单独运行ava...导致下面的导入错误。还有其他人知道如何解决这个问题吗?入门指南使用 ES6 导入,我不知道为什么我的不能正常工作。

(function (exports, require, module, __filename, __dirname) { import test from 'ava'; ^^^^^^ SyntaxError: Unexpected token import

测试.js

import test from 'ava';

test(t => {
  t.deepEqual([1, 2], [1, 2]);
});
4

5 回答 5

24

有一种更简单的方法可以使用 AVA 的 ES 模块

$ npm install esm --save-dev 

然后在你的 package.json 添加


{
    "ava": {
        "require": [
            "esm"
        ]
    }
}

Babel 永远无法正常工作,我每天花更多的时间在调试工具上,而不是我的代码与所有这些 CS 堆!

于 2019-04-23T02:51:05.257 回答
5

添加到您的package.json

"ava": {
  "files": [
    "test/**/*.js"
  ],
  "require": [
    "babel-register"
  ],
  "babel": "inherit"
},

您的.babelrc

{
  "presets": ["es2015"]
}

然后你的进口应该工作。

于 2017-01-17T08:26:47.577 回答
1

将此添加到您的 package.json

 "ava": {
    "babel": true
  }

例如

https://github.com/e2e-boilerplate/selenium-webdriver-es-modules-babel-ava/blob/master/package.json

https://github.com/e2e-boilerplate/puppeteer-es-modules-babel-ava/blob/master/package.json

于 2020-03-25T12:15:33.043 回答
0

对我来说,添加就足够了

"type": "module",

对我package.json

为了要做

import test from 'ava';

test('foo', t => {
    t.pass();
});

正确运行。

于 2021-12-28T15:57:11.163 回答
-2

在你安装了 yarm/npm 之后,你运行了ava --init吗?

在 package.json 中,命令说明了什么?如果你运行(如果你使用 npm)npm run test,它应该在你的 package.json 中执行命令。

如果您的测试目录中有任何 .js (ES6),它应该执行它(示例也在他们的 github 页面https://github.com/avajs/ava上)。

您不需要添加上述评论中提到的所有内容。这些命令应该可以让您正常运行:

mkdir avatest
cd avatest
npm init
npm install --global ava (you probably did this already)
npm install --save-dev ava
ava --init
touch test/test.js
atom test/test.js (pasted your script)
npm run test
> 1 passed
于 2017-01-17T08:19:55.827 回答