如何获得NYC覆盖范围以与es6 import(.mjs文件)一起使用

时间:2018-10-07 19:44:31

标签: javascript node.js code-coverage es6-modules nyc

我通常使用nyc进行单元测试。 ES6之前的require('myModule')测试的所有honkey dorey。我无法使其与使用ES6导入的单元测试一起使用。测试{em>不覆盖与--experimental-modules和.mjs文件一起使用:

package.json

"scripts": {
    "test": "node --experimental-modules ./test/test.mjs",
    ... others deleted to save space
},

一切正常。我正在使用Tape进行测试,如果这很重要。输出如下:

(node:9360) ExperimentalWarning: The ESM module loader is experimental.
TAP version 13
# number
ok 1 should be equal
(... more deleted)

但是当我尝试使用nyc时,例如nyc --reporter=lcov --extension .mjs npm test

我得到一个错误:

(node:7304) ExperimentalWarning: The ESM module loader is experimental.
Error [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension: C:/Users/Morgan/.node-spawn-wrap-6952-61a26e1bb867/node
    at exports.resolve (internal/loader/ModuleRequest.js:126:13)
    at Loader.resolve (internal/loader/Loader.js:48:40)
    ....

我正在使用运行在Windows上的节点版本8.9.1和nyc版本13.0.1。

1 个答案:

答案 0 :(得分:1)

the documentation所述,.mjs支持应明确添加:

  

可以通过以下任一方式配置支持的文件扩展名   配置参数或package.json中的nyc config部分。

OUTFIL INCLUDE=(56,8,CH,GE,DATE1-7)

nyc --extension .mjs npm test