簡體   English   中英

如何獲得 nyc 覆蓋范圍以使用 es6 導入(.mjs 文件)

[英]How to get nyc coverage to work with es6 import (.mjs files)

我通常使用nyc來為我的單元測試提供覆蓋。 ES6 之前的所有 honkey dorey require('myModule')測試。 我無法讓它與使用 ES6 導入的單元測試一起工作。 沒有覆蓋的測試使用--experimental-modules和 .mjs 文件:

包.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。

正如文檔所述,應明確添加 .mjs 支持:

支持文件擴展名可以通過配置參數或 package.json 中的 nyc 配置部分進行配置。

nyc --extension .mjs npm test

{
  "nyc": {
    "extension": [
      ".mjs"
    ]
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM