【发布时间】:2020-08-21 06:27:31
【问题描述】:
我继承了带有 Jasmine 单元测试的 JS 代码库。测试框架使用karma 和instanbul-combine 来获取代码覆盖率。似乎istanbul-combine 不适用于当前的节点模块,并且不再维护:推荐的替换是nyc。我在将 Makefile 中的 nyc 替换为 istanbul-combine 时遇到问题。
我成功地将单独的覆盖结果 (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
【问题讨论】: