本文档提供了 Cypress 用户界面组件、其架构以及它们如何协同工作的概述。它解释了驱动 Cypress 测试体验的主要 UI 包、技术栈和构建过程。
有关为 UI 提供支持的 GraphQL API 的信息,请参阅 GraphQL API。有关测试显示和报告方式的详细信息,请参阅 Runner & Reporter。
Cypress UI 构建围绕多个核心包,以提供一致的用户体验。
来源
Cypress UI 使用现代 Web 技术构建
| 组件 | 技术栈 |
|---|---|
| 前端框架 | Vue.js 3 |
| 状态管理 | Pinia |
| 路由 | Vue Router |
| 数据获取 | GraphQL (urql client) |
| 构建工具 | Vite, Webpack |
| CSS | Tailwind CSS |
| 图标 | @cypress-design/icon-registry |
| 设计系统 | @cypress-design/vue-* components |
来源
App (packages/app) 是用户选择项目后与之交互的主要 Cypress 应用程序界面。它提供
来源
Launchpad (packages/launchpad) 是用户打开 Cypress 时看到的第一个 UI 组件。它提供
来源
Frontend Shared 包 (packages/frontend-shared) 包含 App 和 Launchpad 界面之间共享的可重用 UI 组件、实用程序和样式
来源
Runner 和 Reporter 组件协同工作以显示测试及其结果
packages/runner): 在 iframe 中显示被测应用程序packages/reporter): 显示测试结果、命令和日志Runner 的主要职责是管理 AUT(被测应用程序)iframe
来源
Cypress 为使用各种框架构建的组件提供了专门的 UI 适配器
组件测试流程演示了组件如何在测试运行程序中安装和显示
来源
Cypress 使用复杂的构建系统来打包和优化 UI 包
packages/web-config/webpack.config.base.ts 中的 webpack 配置为构建 UI 组件提供了共享设置,包括
来源
Cypress 组件测试库通过两种方式打包和分发
@cypress/react、@cypress/vue 等cypress/react 直接导入sync-exported-npm-with-cli.js 脚本确保发布到 npm 的代码也直接在 Cypress 二进制文件中可用
来源
Cypress 还提供了跨域测试的特殊处理,在运行器中配置了专门的配置项
跨域功能使用 webpack batteries included preprocessor 来处理各种文件格式和编译需求
来源
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(ac3bb1)