You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular项目运行npm test/ng test报错Cannot read property 'pkg' of undefined

报错根因

这个错误由测试覆盖率工具的依赖版本不兼容导致,和你编写的测试用例无关,你的测试用例语法完全符合Angular单元测试规范。报错触发在istanbul覆盖率报告生成阶段,karma-coverage-istanbul-reporter与依赖的istanbul-api版本不匹配,或者和当前Angular版本不兼容。

解决方案
  • 卸载旧的冲突依赖
    运行如下命令删除存在兼容问题的依赖包:
npm uninstall karma-coverage-istanbul-reporter istanbul-api istanbul-lib-coverage --save-dev
  • 安装对应版本兼容依赖
    根据你使用的Angular版本选择对应安装命令:

    • Angular 12及以上版本:Angular官方已弃用karma-coverage-istanbul-reporter,改用官方适配的karma-coverage,执行:
    npm install karma-coverage --save-dev
    
    • Angular 11及以下版本:安装经过验证的兼容版本:
    npm install karma-coverage-istanbul-reporter@3.0.3 istanbul-api@3.0.0 --save-dev
    
  • 调整karma配置文件(仅Angular 12及以上版本需要)
    打开项目根目录下的karma.conf.js文件:

  1. 在reporters配置项中,将coverage-istanbul替换为coverage
  2. 删除原有coverageIstanbulReporter配置块,替换为官方coverage对应的配置即可,无需自定义参数的话可以保留默认配置。
  • 重新安装依赖运行测试
rm -rf node_modules package-lock.json
npm install
ng test

内容的提问来源于stack exchange,提问作者tiana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 08:48:03