本文档描述了 Cypress 的命令行界面 (CLI) 和二进制管理系统。这些组件使用户能够通过命令行命令与 Cypress 交互,管理 Cypress 二进制文件的生命周期(下载、安装、验证)以及执行测试。
有关测试运行器的信息,请参阅 核心测试基础设施。
CLI & 二进制系统包含两个主要组件
cypress run 和 cypress openCLI 作为面向用户的接口,而二进制管理系统则处理 Cypress 可执行文件的底层生命周期。
来源:cli/lib/cli.js1-608 cli/lib/exec/spawn.js1-412 cli/lib/tasks/verify.js1-389 cli/lib/tasks/install.js1-330 cli/lib/tasks/download.js1-395 cli/lib/errors.js1-420
CLI 使用 commander 库来解析命令和选项,并将执行委托给相应的模块。
| 命令 | 描述 |
|---|---|
cypress open | 打开 Cypress GUI |
cypress run | 无头模式运行 Cypress 测试 |
cypress install | 安装 Cypress 二进制文件 |
cypress verify | 验证 Cypress 二进制文件 |
cypress cache | 管理二进制缓存 |
cypress info | 打印 Cypress 和系统信息 |
cypress version | 显示版本信息 |
来源:cli/lib/cli.js132-145 cli/lib/cli.js231-467
CLI 包含复杂的选项处理,可处理各种标志和环境变量
--headed 和 --headless)来源:cli/lib/cli.js25-57 cli/lib/cli.js58-93 cli/lib/cli.js310-392 cli/lib/util.js192-251
二进制管理系统负责 Cypress 二进制文件的生命周期。
来源:cli/lib/tasks/install.js71-139 cli/lib/tasks/verify.js166-222 cli/lib/exec/spawn.js166-410
下载系统处理 Cypress 二进制文件的获取,具备以下功能
CYPRESS_DOWNLOAD_MIRROR 自定义下载镜像来源:cli/lib/tasks/download.js17-39 cli/lib/tasks/download.js59-85 cli/lib/tasks/download.js196-394
验证系统确保 Cypress 二进制文件
在 Linux 上,它会管理 Xvfb 以实现无头操作,并在检测到显示错误时自动使用 Xvfb 重试。
来源:cli/lib/tasks/verify.js20-165 cli/lib/tasks/verify.js225-369 cli/lib/exec/xvfb.js1-109
二进制文件存储在缓存目录中,该目录因平台而异
%APPDATA%\Cypress\Cache~/Library/Caches/Cypress~/.cache/Cypress状态管理系统
来源:cli/lib/util.js257-275 cli/lib/tasks/state.js1-370 cli/lib/cli.js514-553
启动系统负责使用正确的参数和环境启动 Cypress 二进制文件。
启动系统处理:
来源:cli/lib/exec/spawn.js126-161 cli/lib/exec/spawn.js193-355 cli/lib/exec/xvfb.js76-104
启动系统过滤掉不影响功能的常见“噪音”错误
这为用户提供了更清晰的输出,同时仍保留重要错误。
来源:cli/lib/exec/spawn.js16-119 cli/lib/exec/spawn.js320-335
除了 CLI,Cypress 还提供了一个用于程序控制的 JavaScript API
模块 API 以编程接口的形式提供了与 CLI 相同的功能,并像 CLI 一样规范化选项。
来源:cli/lib/cypress.js12-103 cli/lib/cli.js310-392 cli/lib/util.js192-251
CLI 支持各种环境变量来自定义行为
| 可变 | 描述 |
|---|---|
CYPRESS_INSTALL_BINARY | 指定要安装的二进制文件版本或路径 |
CYPRESS_DOWNLOAD_MIRROR | 用于二进制文件的自定义下载镜像 |
CYPRESS_CACHE_FOLDER | 用于二进制文件缓存的自定义位置 |
CYPRESS_RUN_BINARY | 要运行的特定二进制文件的路径 |
CYPRESS_VERIFY_TIMEOUT | 二进制文件验证超时 |
CYPRESS_DOWNLOAD_PATH_TEMPLATE | 用于构建下载 URL 的模板 |
CYPRESS_SKIP_VERIFY | 跳过二进制文件验证 |
NO_COLOR | 禁用彩色输出 |
来源:cli/lib/tasks/verify.js249-262 cli/lib/tasks/download.js17-39 cli/lib/tasks/download.js59-85 cli/lib/util.js518-555
CLI 提供了用户友好的错误消息,包含
处理的常见错误场景
来源:cli/lib/errors.js16-585 cli/lib/tasks/verify.js41-165
CLI 包含针对不同平台的专门逻辑
来源:cli/lib/exec/spawn.js126-161 cli/lib/exec/xvfb.js76-104 cli/lib/tasks/verify.js371-382 cli/lib/util.js80-115
CLI 提供了用于管理二进制文件缓存的命令
cypress cache list - 列出缓存的版本cypress cache path - 显示缓存位置cypress cache clear - 删除所有缓存的二进制文件cypress cache prune - 移除除当前版本外的所有版本这有助于用户管理磁盘空间和排除二进制文件问题。