node.js - 纽约 + Mocha + es6 模块

标签 node.js mocha.js nyc

我正在尝试使用 nyc + mocha 来获得使用 es6 模块语法的单元测试的测试覆盖率。
当我运行 mocha my_test.mjs一切正常。 my_test.mjs 中的依赖项(使用 native 导入)已正确解析。
但是当我在这个命令前面加上 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 ,但似乎没有任何效果。
注意,我使用的是最新版本的 node、nyc 和 mocha
任何的想法?

最佳答案

对于通过搜索找到此内容的任何人,c8代码覆盖工具对我来说是一个替代品。
我实际上只是安装了它,并在我的 package.json 脚本中将 'nyc' 替换为 'c8' 。
此外,如果您好奇,这里是开放的(在我写这篇文章时)纽约问题:https://github.com/istanbuljs/nyc/issues/659

关于node.js - 纽约 + Mocha + es6 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62509699/

相关文章:

javascript - 为包目录外的文件启用 nyc/istanbul 代码覆盖

javascript - 从 package.json 作为脚本运行时出现 ESLint 错误

javascript - NodeJS/Javascript 在不同数组中查找具有相同属性的对象

javascript - 一个简单的 WebdriverIO - Mocha 测试不显示浏览器

node.js - 使用 SailsJS/Node、Mocha、Supertest 进行身份验证的 session 存储

javascript - node - 如何在 nyc 和 mocha 中使用 source-map

node.js - "502 Bad Gateway"将 hapi.js 部署到 AWS Beanstalk?

node.js - Node js从http get异步函数返回未定义的值

selenium-webdriver - 使用 Selenium 驱动程序的 Mocha 超时

istanbul - 纽约相当于 Istanbul 尔司令部