Как получить покрытие nyc для работы с импортом es6 (файлы .mjs) - PullRequest
0 голосов
/ 07 октября 2018

Обычно я использовал Нью-Йорк , чтобы обеспечить покрытие для моих модульных тестов.Все хонки дорей для тестов перед ES6 require('myModule').У меня проблемы с его настройкой для работы с юнит-тестами, использующими импорт ES6.Тесты без покрытия работают с --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)
    ....

Я использую узелверсия 8.9.1 и nyc версия 13.0.1, работающие в Windows.

1 Ответ

0 голосов
/ 07 октября 2018

Как указывает документация , поддержка .mjs должна быть явно добавлена:

Поддерживаемые расширения файлов могут быть настроены с помощью аргументов конфигурации или с помощью раздела конфигурации nyc в пакете..json.

nyc --extension .mjs npm test

{
  "nyc": {
    "extension": [
      ".mjs"
    ]
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...