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

在NX/Angular/Storybook项目中能否自定义Cypress E2E文件夹的存放位置

Cypress 自定义测试文件存放路径实现方案

你的需求完全可以实现,Cypress 本身支持高度灵活的目录配置,针对 Angular 多库场景,有两种成熟的落地方式:

方案1:单 Cypress 实例,全局配置测试匹配规则

适合希望仅维护一套 Cypress 依赖、统一运行所有测试的场景,仅需修改项目根目录的 cypress.config.ts 配置即可:

  • 调整 specPattern 配置项,匹配所有 libs 目录下 -e2e 后缀文件夹中的测试文件,示例配置如下:
import { defineConfig } from 'cypress'

export default defineConfig({
  e2e: {
    // 匹配所有libs目录下*-e2e文件夹内的测试文件
    specPattern: 'libs/**/*-e2e/src/**/*.cy.{js,jsx,ts,tsx}',
    // 可选:如果需要每个库独立维护 fixtures、support 配置,可对应配置通配符路径
    fixturesFolder: 'libs/**/*-e2e/src/fixtures',
    supportFile: 'libs/**/*-e2e/src/support/e2e.ts',
  }
})
  • 如果你使用 Nx 脚手架管理 Angular 多库项目,直接修改 nx.json 中的 Cypress executor 配置,将 e2e 目录的默认生成规则调整为与对应库同层级的 *-e2e,后续新建库的 e2e 测试会自动按规则生成目录。
  • 优点:仅需维护一份 Cypress 依赖,全局跑测、接入 CI 流水线更便捷
  • 缺点:所有库共用一套 Cypress 版本,升级时需要整体验证兼容性

方案2:每个库独立配置 Cypress 实例

适合跨团队维护、各库规则差异较大的大型项目,每个 -e2e 文件夹完全独立:

  • 每个 -e2e 文件夹下单独存放 cypress.config.ts,可自定义当前库专属的 baseUrl、测试覆盖率规则、插件等,不会和其他库冲突
  • 运行单库测试时执行命令 cypress open --config-file libs/CommonUI/DropdownList-e2e/cypress.config.ts 即可
  • 优点:各库的 Cypress 版本、配置规则完全独立,互不影响
  • 缺点:重复安装依赖,占用磁盘空间更大

替代方案

如果暂时不想调整全局配置,也可以在现有统一的 e2e 目录下,建立和 libs 完全一致的目录结构映射,比如 libs/CommonUI/DropdownList 对应的测试放在 e2e/libs/CommonUI/DropdownList 下,也能解决结构不直观的问题,缺点是需要手动维护目录映射关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 21:00:05