我继承了带有 Jasmine 单元测试的 JS 代码库。测试框架使用karma
和instanbul-combine
来获取代码覆盖率。它似乎istanbul-combine
不适用于当前的节点模块,并且不再维护:推荐的替换是nyc
. 我在istanbul-combine
替换nyc
为Makefile
.
我成功地将我单独的覆盖结果(json)文件合并到一个coverage-final.json
文件中(this SO question),但现在我需要生成摘要报告。
如何从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