[英]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.