Конфигурация webpack для покрытия с remap-istanbul
Я уже выполнил настройку для проекта "Машинопись + Бабель" (этап-1+ реакция) с тестами мокко + освещение в Стамбуле.
Mocha настраивается следующим образом: webpack собирает пакеты commonjs в каталоге tmp с помощью istanbul-instrumenter-loader. Точки входа - это файлы, которые соответствуют ./**/*.spec.(t|j)sx?
JSX? Загрузчик выглядит так:
loaders: [
'istanbul-instrumenter-loader',
"source-map-loader",
'babel-loader',
],
где source-map-loader
мой модуль, который просто пишет sourceMap, который передается загрузчику, в [file base name].map
(например app.js.map
) файлы для каждого файла пакета. После того, как сборка завершена, я запускаю задачу gulp для mocha, которая добавляет все эти пакеты в mocha runner, запускает тесты и после этого собирает информацию о покрытии.
Вчера я нашел проект remap-istanbul и попытался настроить его. Вы можете посмотреть модуль отчета о покрытии, добавив переназначение здесь. Это всегда терпит неудачу с этим выводом:
/app/node_modules/istanbul/lib/store/memory.js:38
throw new Error('Unable to find entry for [' + key + ']');
^
Error: Unable to find entry for [src/actions/appointments.js]
at MemoryStore.Store.mix.get (/app/node_modules/istanbul/lib/store/memory.js:38:19)
at HtmlReport.Report.mix.writeDetailPage (/app/node_modules/istanbul/lib/report/html.js:411:67)
at /app/node_modules/istanbul/lib/report/html.js:489:26
at SyncFileWriter.extend.writeFile (/app/node_modules/istanbul/lib/util/file-writer.js:57:9)
at FileWriter.extend.writeFile (/app/node_modules/istanbul/lib/util/file-writer.js:147:23)
at /app/node_modules/istanbul/lib/report/html.js:488:24
at Array.forEach (native)
at HtmlReport.Report.mix.writeFiles (/app/node_modules/istanbul/lib/report/html.js:482:23)
at /app/node_modules/istanbul/lib/report/html.js:484:22
at Array.forEach (native)
Я пытался отладить тестовый прогон и сбор покрытия, но не мог понять, почему у него неправильный путь к файлу, я думаю, это из-за исходной карты webpack.