Я унаследовал базу кода JS с модульными тестами Jasmine. Платформа тестирования использует karma
и instanbul-combine
для получения покрытия кода. Похоже, что istanbul-combine
не работает с существующими модулями узла, и, кроме того, больше не поддерживается: рекомендуемая замена - nyc
. У меня возникли проблемы с заменой istanbul-combine
на nyc
в Makefile
.
Мне удалось объединить мои отдельные файлы результатов покрытия (json) в один файл coverage-final.json
(это ТАК вопрос), но теперь мне нужно создать сводный отчет.
Как создать сводный отчет из файла 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
), я получаю тот же неудовлетворительный результат. Нью-Йорк, по-видимому, довольно жестко относится к форматам, в которых он будет принимать эти данные.
Вот исходная строка Makefile, которую я заменяю:
PATH=$(PROJECT_HOME)/bin:$$PATH node_modules/istanbul-combine/cli.js \
-d coverage/summary -r html \
coverage/*/coverage-final.json