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

如何创建使用Karma/Jasmine而非Jest/Cypress的Nx 15工作区

在Nx 15.x Angular单体工作区中用Karma/Jasmine替代Jest/Cypress

工作区全局配置步骤

用Angular预设创建Nx 15.x工作区时,--unit-test-runner参数确实不生效,要在工作区层面统一切换测试框架,按以下步骤操作:

  1. 安装Karma/Jasmine相关依赖
    在工作区根目录执行命令,补全所需依赖:
npm install --save-dev @nrwl/angular/plugins/jasmine karma karma-chrome-launcher karma-jasmine karma-jasmine-html-reporter @types/jasmine jasmine-core
  1. 修改全局配置文件
    打开根目录的nx.json,找到或新增generators配置块,设置Angular生成器的默认测试框架:
"generators": {
  "@nrwl/angular:application": {
    "unitTestRunner": "karma",
    "e2eTestRunner": "protractor" // 若无需替换Cypress,可删除此行
  },
  "@nrwl/angular:library": {
    "unitTestRunner": "karma"
  }
}

配置完成后,后续新建的所有Angular应用或库,都会默认使用Karma/Jasmine作为单元测试框架。

  1. 适配已创建的项目(如有)
    如果工作区中已有基于Jest的项目,需要逐个调整:
  • 删除项目目录下的jest.config.ts,新增karma.conf.js和src/test.ts(可参考Angular CLI生成的标准配置)
  • 修改项目的project.json,将test目标的执行器替换为@nrwl/angular:karma,示例配置如下:
"test": {
  "executor": "@nrwl/angular:karma",
  "options": {
    "buildTarget": "你的项目名:build",
    "config": "apps/你的项目名/karma.conf.js"
  }
}
  • 可选操作:移除Jest相关依赖:npm uninstall jest @nrwl/jest @types/jest

额外说明

  • 若仅需替换单元测试框架、保留Cypress作为E2E测试工具,只需配置unitTestRunner即可,无需设置e2eTestRunner。
  • 上述全局配置为一次性操作,后续新增项目无需单独指定参数,会自动沿用Karma/Jasmine配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 09:34:50