Как создать отчет ny c из результатов json (no .nyc_output)? - PullRequest
0 голосов
/ 01 мая 2020

Я унаследовал 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

1 Ответ

0 голосов
/ 06 мая 2020

Использование этой строки в моем Makefile сработало:

npx nyc report --reporter html --reporter text -t coverage --report-dir coverage/summary

Он извлекает файлы JSON из каталога coverage и помещает их вместе в отчет HTML в подкаталоге coverage/summary. (Мне не нужна была команда nyc merge из моего предыдущего вопроса / ответа.)

Я не уверен, почему опция -t раньше не работала. Возможно, я использовал неправильную версию nyc (15.0.0 вместо 14.1.1, fwiw).

...