ES6导入'ava'测试不起作用

时间:2017-01-17 08:16:37

标签: javascript testing ava

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

  

(function(exports,require,module,__ filename,__ dirname){import   从'ava'测试;                                                                 ^^^^^^ SyntaxError:意外的令牌导入

test.js

import test from 'ava';

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

4 个答案:

答案 0 :(得分:3)

添加到您的[Route("api/[controller]")] public class NopProductController : Controller { private INopProductService _nopProductService { get; set; } public NopProductController(INopProductService nopProductService) { _nopProductService = nopProductService; } [HttpGet] [ResponseCache(Duration = 60, Location = ResponseCacheLocation.None)] public IActionResult GetChangedProducts() { return Ok(_nopProductService.GetChanged()); } }

package.json

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

.babelrc

然后你的进口应该有效。

答案 1 :(得分:0)

使用AVA的ES模块很容易

$ npm install esm --save-dev 

然后在package.json中添加


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

Babel永远无法正常工作,我每天花更多的时间在调试工具上,而我的代码每天都用这堆CS!

答案 2 :(得分:0)

答案 3 :(得分:-3)

安装了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