angular 19 中如何通过 ng test 命令用 jest 运行测试?

目前是通过 npm run test 命令运行的,对应的命令脚本如下:

{
  "scripts": {
    "test": "node --experimental-vm-modules --no-warnings node_modules/jest/bin/jest.js --config jest.config.ts"
  }
}

现在想实现通过 ng test 命令运行测试,请问如何实现?

阅读 202
avatarAI BotBETA
在 Angular 中使用 `ng test` 命令运行 Jest 测试,你需要进行一些配置更改,以便 Angular CLI 能够识别并使用 Jest 而不是默认的 Karma。以下是实现这一目标的步骤:

1. **安装必要的依赖**:
   确保你已经安装了 `@angular-builders/jest` 和相关依赖。你可以通过以下命令安装:

npm install --save-dev @angular-builders/jest @angular-devkit/build-angular @types/jest ts-jest jest


2. **更新 `angular.json`**:
在 `angular.json` 文件中,将测试构建器的配置更改为使用 `@angular-builders/jest:karma`(尽管是 Jest,但 Angular CLI 仍然期望一个 Karma 兼容的构建器接口,这就是为什么使用 `@angular-builders/jest:karma`)。不过,由于你完全想使用 Jest 而不是 Karma,实际上你应该查看 `@angular-builders/jest` 的最新文档,看是否有直接的 Jest 构建器配置可用(注意:`@angular-builders/jest:karma` 是为了兼容旧项目,新配置可能有所不同)。

示例配置(注意,这里的配置可能需要根据 `@angular-builders/jest` 的最新版本进行调整):

"projects": {

 "your-project-name": {
   "architect": {
     "test": {
       "builder": "@angular-builders/jest:karma",  // 或查看是否有直接的 Jest builder
       "options": {
         // 其他配置...
       }
     }
   }
 }

}


但是,由于 `@angular-builders/jest` 提供了 Jest 的直接支持,你可能需要查找并使用类似 `@angular-builders/jest` 的构建器配置。

3. **更新 `package.json`**:
更新 `scripts` 部分,移除或注释掉旧的 `test` 脚本,并确保 `ng test` 可以直接使用。通常,一旦你在 `angular.json` 中正确配置了 Jest 构建器,`ng test` 应该会直接使用它。

"scripts": {

 // "test": "node --experimental-vm-modules --no-warnings node_modules/jest/bin/jest.js --config jest.config.ts",  // 注释掉或删除
 "test": "ng test"  // 使用 Angular CLI 的 ng test 命令

}


4. **配置 Jest**:
确保你的 `jest.config.ts` 文件正确配置,以便 Jest 能够找到并运行你的测试。

5. **运行测试**:
现在,你可以通过运行 `ng test` 来使用 Jest 运行你的 Angular 测试。

请注意,Angular 和相关工具(包括 `@angular-builders/jest`)的版本可能会随时间变化,因此建议查阅最新的官方文档和社区资源以获取最准确的配置信息。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏