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

Angular14执行ng test(Jest)报no前缀选项警告如何修复

问题触发场景

将项目Angular框架升级至14版本,使用Jest作为测试框架,执行ng test命令运行测试时,控制台抛出如下警告:

Warning: 'no-cache' option has been declared with a 'no' prefix in the schema.Please file an issue with the author of this package.
Warning: 'noStackTrace' option has been declared with a 'no' prefix in the schema.Please file an issue with the author of this package.
警告产生原因

Angular 14 新增了CLI配置Schema的命名校验规则,明确不允许配置项直接以no作为前缀命名,不符合该命名规范的配置项就会抛出上述提示。
触发警告的no-cache、noStackTrace是Jest原生支持的配置参数,旧版本的@angular-builders/jest(Angular对接Jest的构建器)直接透传了这两个参数,没有适配Angular 14的新命名校验规则,就触发了提示。该警告属于规范类提示,不会影响测试用例正常执行,也不会导致测试流程异常退出。

修复方案

可根据自身项目情况选择以下任意一种方案处理:

  • 升级适配版本的Jest构建器(推荐)
    该适配问题在@angular-builders/jest14.0.1及以上版本已经官方修复,直接升级开发依赖即可:
    # 使用npm的项目执行
    npm install @angular-builders/jest@^14.0.1 --save-dev
    # 使用yarn的项目执行
    yarn add @angular-builders/jest@^14.0.1 -D
    
    升级完成后重新执行ng test命令,警告即可消失。
  • 手动修改配置绕开校验(不方便升级依赖时使用)
    如果项目暂时不允许升级构建器版本,可以直接修改angular.json中的测试配置,将带no前缀的反向配置替换为语义一致的正向取反配置,绕开命名校验规则:
    • 原配置"no-cache": true替换为"cache": false
    • 原配置"noStackTrace": true替换为"stackTrace": false
      配置参考示例:
    "test": {
      "builder": "@angular-builders/jest:run",
      "options": {
        "cache": false,
        "stackTrace": false
        // 其余原有测试配置保持不变即可
      }
    }
    
    保存配置后重新运行测试命令即可消除警告,两种写法的实际运行效果完全一致。
  • 忽略提示不做处理
    由于该警告仅为命名规范提醒,不会对测试运行逻辑、测试结果产生任何实质影响,如果不介意控制台多两行提示,完全可以不做处理,后续升级项目依赖时该问题会自然修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 09:24:16