GoLand 2025.2 Help

Cypress 自定义命令

自定义命令 提供了一种在 Cypress 测试套件中复用特定方法或函数的方式。 例如,您可以编写一个用于用户登录的命令,并在项目中适用时进行复用。

GoLand 支持自定义命令,也就是说重命名、导航、代码补全和检查等所有编码辅助功能都可以立即使用。

自定义命令的编码辅助

Cypress 专用检查

Cypress 使用一种 链式机制 ,允许编写一系列命令,将信息从一个命令传递到下一个命令,直到链结束或发生错误。

但是,该机制具有一些特殊要求。 例如,任何 操作命令 都必须始终位于链末,并且只能使用一次。

在此示例中,链中包含两个连续的操作命令,这是不允许的。 执行该测试将导致错误。

it('Click the search button and type Cypress', () => { cy.get("button[data-test='search-button']") .click() .type('Cypress') })

在此示例中,链被拆分为两部分,因此每个链中仅包含一个操作命令。 该测试将无误地执行。

it('Click the search button and type Cypress', () => { cy.get("button[data-test='search-button']").click() cy.get("input[data-test$='inner']").type('Cypress') })

在 JavaScript/TypeScript 中不会执行命令链的验证,而在 Cypress 中只会在运行时执行,这可能在测试执行过程中导致问题。 而 GoLand 则会对链式命令执行检查,突出显示错误用法。

错误链式命令检查

函数专用检查

GoLand 会执行函数专用的代码检查,以在项目中检测并修复异常代码。

例如,如果为命令提供了错误数量或类型的参数,将会突出显示有错误的代码。 将鼠标悬停在高亮代码上可以查看错误描述。

Aqua ts function specific inspections

有关更多信息,请参阅 代码检查

重命名

如果需要重命名命令,您可以使用 重命名重构。 操作如下:

  1. 选中要重命名的命令。

    突出显示的命令
  2. 按下 Shift+F6 并为命令提供一个新名称。

    重命名命令
  3. (可选)配置其他搜索选项并定义作用域。

  4. 单击 重构

有关更多信息,请参阅 重命名重构

创建自定义命令

要创建自定义命令,须先编写该命令,然后为其创建 TypeScript 声明。 操作如下:

  1. 在代码编辑器中编写命令。

    使用 TypeScript 编写的自定义命令
    使用 TypeScript 编写的自定义命令
  2. 将鼠标悬停在高亮代码上并单击 创建缺失的 TypeScript 声明

    或者,将插入符放在高亮代码处,按下 Alt+Enter ,然后选择 创建缺失的 TypeScript 声明

    创建 TypeScript 声明
    创建 JavaScript 声明

由此将生成 TypeScript 声明并将其添加到 cypress/support/index.d.ts 文件。

生成的 TypeScript 声明

您可能希望在命令实现和其对应的 TypeScript 声明之间进行导航:

  • 要导航到 TypeScript 声明,请单击命令实现旁边边距中的

    导航到 TypeScript 声明
  • 要返回命令实现,请单击 TypeScript 声明旁边边距中的

    导航到命令实现

使用自定义命令

一旦 创建了自定义命令,您就可以在代码中使用它。 操作如下:

  • 在测试中,输入 cy. ,然后输入自定义命令的名称。

    自定义登录命令
    自定义登录命令的用法

更改命令文件的位置

默认情况下,包含生成的 TypeScript 声明的文件位于 cypress/support/commands.ts 。 如果想更改位置:

  1. 按下 Ctrl+Alt+S 打开设置,然后选择 语言与框架 | Cypress

  2. 用于存储自定义命令 TypeScript 声明的 TypeScript 文件 字段中指定新路径。

    指定新路径
    指定新路径
  3. 应用更改并关闭对话框

最后修改日期: 2025年 9月 26日