使用Mocha测试ES 2015模块

时间:2019-04-10 17:00:50

标签: javascript mocha babeljs

我刚刚在工作中被分配了一个使用原始本机导入/导出的项目(仅支持最新的浏览器),其中很大一部分是由一些顾问编写的(我不能解雇它们或更改其中的大块内容)项目/工具链)。我希望尽可能在node.js中运行测试(必要时使用jsdom),通常每分钟运行多次(即,它们需要快速)。我坚强宁愿不必每隔几秒钟就按Alt键浏览器以查看结果。

由于顾问根据我们的意愿(长期而言)做出了一些技术选择,因此我不得不使用mocha和chai进行测试(我习惯于Jasmine和Jest),并且它们没有测试/测试工作流程设置(再次,我无法从自己手中解雇他们。)

搜索时,我发现了this个问题及其答案。许多建议已弃用,或针对旧版本的建议,例如通天塔。

我终于到了安装@ babel / core,@ babel / register和@ / babel / preset-env并准备就绪的地步。

所以我

mocha --require @babel/register path/to/test.js

在.babelrc中使用适当的预设,我得到

  

regeneratorRuntime未定义

即使节点支持,它显然也在尝试填充异步/等待。

不需要转换现代语法的每个方面,我只需要将import / export语句更改为module.exports并要求。我真的不想增加额外的转换/多边形填充的开销,我只是想在这里运行一些测试。我添加了@ babel / polyfill只是为了使其正常工作,但是我可以将其设置为仅转换导入/导出语句吗?

1 个答案:

答案 0 :(得分:1)

您可以add targets to @babel/preset-env使其知道要定位的环境。

在这种情况下,您将定位到当前版本的Node.js:

presets: [
  [
    '@babel/preset-env',
    {
      targets: {
        node: 'current',
      },
    },
  ],
  ...
]
相关问题