gpt4 book ai didi

javascript - 使用 Mocha 测试 ES 2015 模块

转载 作者:行者123 更新时间:2023-11-30 19:38:57 26 4
gpt4 key购买 nike

我刚刚被分配到一个使用原始 native 导入/导出的项目(仅支持最新的浏览器),其中很大一部分是由一些顾问编写的(我不能解雇他们或更改大块的项目/工具链)。我更喜欢尽可能在 node.js 中运行我的测试(必要时使用 jsdom),并且通常每分钟多次(即它们需要快速)。我强烈不想每隔几秒就必须按 alt-tab 键切换到浏览器才能查看结果。

由于顾问做出的一些技术选择违背了我们的意愿(长话短说),我不得不使用 mocha 和 chai 进行测试(我已经习惯了 Jasmine 和 Jest),而且他们没有测试/测试工作流程设置(再说一次,我不能解雇他们,从我手中)。

搜索时我找到了 this问题及其答案。许多建议已被弃用,或者适用于旧版本,例如通天塔。

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

所以我

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

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

regeneratorRuntime is not defined

它显然是在尝试 polyfill async/await,即使 node 支持它。

不需要转换现代语法的各个方面,我只需要将导入/导出语句更改为 module.exports 和 require。我真的不想有额外的转换/polyfills 的开销,我只是想在这里运行一些测试。我添加 @babel/polyfill 只是为了让它工作,但我可以将它设置为仅转换导入/导出语句吗?

最佳答案

您可以 add targets to @babel/preset-env让它知道目标环境。

在这种情况下,您需要以当前版本的 Node.js 为目标:

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

关于javascript - 使用 Mocha 测试 ES 2015 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55617843/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com