合并Cypress与Karma代码覆盖率报告结果异常问题排查
Angular项目合并Karma与Cypress覆盖率报告问题及解决
我在Angular项目中同时使用内置单元测试工具Karma和Cypress进行测试,需要合并两者的代码覆盖率报告。已成功配置覆盖率输出,使用nyc merge可完成合并,但统计数值不正确。
相关依赖版本
"@angular/core": "^16.0.3", "cypress": "^12.13.0", "istanbul-lib-coverage": "^3.2.0", "@cypress/code-coverage": "^3.11.0", "@cypress/webpack-preprocessor": "^5.17.1", "@istanbuljs/nyc-config-typescript": "^1.0.2", "@jsdevtools/coverage-istanbul-loader": "^3.0.5", "karma": "^6.4.2", "karma-coverage": "^2.2.0", "nyc": "^15.1.0",
问题排查与尝试
- 已对比Karma和Cypress各自
coverage-final.json中同一文件的内容、对应的lcov-report截图,以及合并后的结果截图 - 尝试过GitHub Issue中的方案,无效
- 降级Istanbul版本后,无法解析TypeScript文件
解决方法
原合并命令的问题在于npx nyc report默认扫描.nyc_output目录导致结果错误,修改命令为:
npx nyc report --reporter=html --reporter=text-summary -t coverage/test --report-dir=...
执行修改后的命令后得到了正确的合并覆盖率结果。
内容的提问来源于stack exchange,提问作者ForestG
相关产品推荐
相关产品推荐

