Я унаследовал JS кодовую базу с модульными тестами Jasmine. Среда тестирования использует karma
и instanbul-combine
для получения покрытия кода. Кажется, istanbul-combine
не работает с существующими модулями узла и, кроме того, больше не поддерживается: рекомендуемая замена - nyc
. У меня возникают проблемы при замене istanbul-combine
на nyc
в Makefile
.
. Мне удалось объединить отдельные файлы результатов покрытия (json) в один файл coverage-final.json
(). этот SO вопрос ), но теперь мне нужно создать сводный отчет.
Как создать сводный отчет из файла coverage.json
?
Одна из проблем здесь, я думаю, в том, что у меня нет каталога .nyc_output
с промежуточными результатами, так как я не использую nyc
для генерации данных покрытия. Все мои данные покрытия находятся в каталоге coverage
и его дочерних каталогах.
Я попытался указать имя файла:
npx nyc report --include coverage-final.json
Также попытался указать каталог:
npx nyc report --include coverage
Ни то, ни другое не работает.
----------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files | 0 | 0 | 0 | 0 |
----------|---------|----------|---------|---------|-------------------
Справочная документация по CLI гласит
--temp-dir, -t directory to read raw coverage information from
Но когда я использую эту точку для каталога coverage
(то есть, npx nyc report -t coverage
), Я получаю такой же неудовлетворительный результат. NY C, по-видимому, довольно жесткий в форматах, в которых он будет принимать эти данные.
Вот оригинальная строка Makefile, которую я заменяю:
PATH=$(PROJECT_HOME)/bin:$$PATH node_modules/istanbul-combine/cli.js \
-d coverage/summary -r html \
coverage/*/coverage-final.json