2

私は通常、単体テストのカバレッジを提供するためにnycを使用しました。ES6 より前のテスト用のすべての honkey dorey require('myModule')。ES6 インポートを使用する単体テストで問題が発生しています。カバレッジのないテストは、--experimental-modulesおよび .mjs ファイルで動作します。

パッケージ.json

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

そして、すべてが機能します。それが重要かどうかをテストするためにテープを使用しています。出力は次のようになります。

(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を使用しています。

4

1 に答える 1

2

ドキュメントに記載されているように、.mjs サポートを明示的に追加する必要があります。

サポートするファイル拡張子は、構成引数または package.json の nyc config セクションを使用して構成できます。

nyc --extension .mjs npm test

{
  "nyc": {
    "extension": [
      ".mjs"
    ]
  }
}
于 2018-10-07T19:50:26.883 に答える