Я пытаюсь получить отчет о покрытии от ng test --code-coverage
. Без покрытия тесты работают без проблем, но с ним я получаю эту ошибку:
ERROR [karma]: TypeError: Cannot read property 'replace' of undefined
at fixPathSeparators (<path>\node_modules\karma-coverage-istanbul-reporter\src\util.js:20:21)
at Object.fixWebpackSourcePaths (<path>\node_modules\karma-coverage-istanbul-reporter\src\util.js:41:16)
at Object.keys.forEach.filename (<path>\node_modules\karma-coverage-istanbul-reporter\src\reporter.js:46:44)
at Array.forEach (<anonymous>)
at addCoverage (<path>\node_modules\karma-coverage-istanbul-reporter\src\reporter.js:43:27)
at createReport (<path>\node_modules\karma-coverage-istanbul-reporter\src\reporter.js:98:7)
at browsers.forEach.browser (<path>\node_modules\karma-coverage-istanbul-reporter\src\reporter.js:213:9)
at Array.forEach (<anonymous>)
at Collection.forEach (<path>\node_modules\karma\lib\browser_collection.js:93:21)
at CoverageIstanbulReporter.onRunComplete (<path>\node_modules\karma-coverage-istanbul-reporter\src\reporter.js:212:16)
at Server.<anonymous> (<path>\node_modules\karma\lib\events.js:13:22)
at emitTwo (events.js:131:20)
at Server.emit (events.js:214:7)
at Timeout._onTimeout (<path>\node_modules\karma\lib\executor.js:51:17)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
Некоторые отладки показали, что sourceMap
, используемый внутри Стамбула, не имеет атрибута sourceRoot
. Я попытался добавить это к нескольким файлам конфигурации без удачи.
По моему karam.conf.js
у меня есть:
coverageIstanbulReporter: {
dir: require('path').join(__dirname, '../coverage'),
reports: ['html', 'lcovonly'],
fixWebpackSourcePaths: true
}
Очень странным является тот факт, что мой проект содержит библиотеку с отдельными тестами. Они работают с одинаковой конфигурацией.
Факты
- Угловой 6.1.0
- Жасмин 2.99.1
- Карма 1.7.1
- Карма Покрытие Стамбул Репортер: 2.0.0
Спасибо!