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

Angular v14升级后ng test无法传递Jest CLI选项报错如何解决

Angular 14 下 ng test 无法识别 Jest 透传参数问题

问题表现

Angular项目中使用Jest替代Karma作为测试框架,angular.json配置正确,直接执行ng test可以正常运行。
根据相关技术文档说明:

既可以在builder选项中指定Jest CLI选项(适合持久化配置场景),也可以直接在ng test命令后追加参数传递(适合单次临时使用场景)。
比如运行单个测试用例可以执行:
ng test --testNamePattern="My test suite My test case"

升级到Angular v14之前该用法一直正常,升级后执行命令:

ng test --testNamePattern="MyComponent"

直接抛出错误:

Error: Unknown argument: testNamePattern

环境信息

Angular CLI: 14.0.2
Node: 16.13.1
Package Manager: yarn 1.22.17 
OS: darwin arm64

Angular: 14.0.2
... animations, cdk, cli, common, compiler, compiler-cli, core
... elements, forms, language-service, platform-browser
... platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1400.2
@angular-devkit/build-angular   14.0.2
@angular-devkit/core            14.0.2
@angular-devkit/schematics      8.3.29
@schematics/angular             14.0.2
rxjs                            6.6.7
typescript                      4.7.4

问题原因

该问题是适配Angular 14版本的Jest builder存在的回归缺陷,命令行参数透传逻辑失效,无法识别直接追加的Jest原生参数。

解决方法

  • 单次运行需要过滤测试用例时,直接调用本地Jest执行,绕过Angular CLI的builder参数校验:
    npx jest --testNamePattern="MyComponent"
    
  • 固定配置的Jest运行参数,统一写到项目根目录的jest.config.js中,或者配置在angular.json对应builder的options字段下,不要通过命令行追加透传。
  • 等待Jest builder发布修复该回归问题的版本后,升级依赖即可恢复原ng test追加参数的用法。

备注:该问题已被builder维护方确认是版本回归缺陷

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 09:18:17