node.js - 纽约 + 摩卡 + es6 模块
问题描述
我正在尝试使用 nyc + mocha 来获得使用 es6 模块语法的单元测试的测试覆盖率。当我运行mocha my_test.mjs
一切正常。my_test.mjs 中的依赖项(使用本机导入)已正确解析。但是当我在这个命令前面加上 nyc:nyc mocha my_test.mjs
它不再起作用,抛出这个错误:
node_modules/mocha/lib/esm-utils.js:6
return import(url.pathToFileURL(file));
^^^^^^
SyntaxError: Unexpected token import
at Module._extensions..js (module.js:663:10)
at Object.replacementCompile (nodejs/core/tests/cache.install.nodejs_install/node_modules/append-transform/index.js:60:13)
at Module._extensions..js (module.js:663:10)
我尝试了不同的变体nyc --require esm mocha my_test.mjs
或强制--experimental-modules
使用节点,但似乎没有任何效果。
注意,我使用的是最新版本的 node、nyc 和 mocha
任何想法?
解决方案
对于任何通过搜索找到此内容的人来说,c8代码覆盖率工具对我来说是一个替代品。我实际上只是安装了它,并在我的 package.json 脚本中将 'nyc' 替换为 'c8' 。
此外,如果您好奇,这里是开放的(在我写这篇文章时)纽约问题:https ://github.com/istanbuljs/nyc/issues/659
推荐阅读
- sql - 拆分后是否有比较字符串值的where条件?
- wordpress - woocommerce 使用 meta_data 将商品添加到购物车
- php - 如何在 PHP 中模拟通过 get_class 检查的对象?
- python - 提取字符串中每个单词的首字母
- godot - 为什么我的敌人在godot引擎启动时消失了
- macos - 如何在 Mac 上安装 clangd(最好使用 homebrew)
- python - 有什么办法可以摆脱 python 列表中的“'”?
- android - 如何禁止点字符作为 EditText 中的第一个字母?
- r - 如何从具有一定要求的长数据中计算周期的持续时间
- java - 我想用我的 java 项目在 github 中上传文件,任何人都有我想要的 spring boot 示例