Skip to main content

additionalInteractionCommands

UI Coverage 会自动使用预定义的 Cypress 交互命令集(如 clicktypedblclick 等)跟踪测试中元素的使用情况。

additionalInteractionCommands 配置允许您扩展这个默认集。您可以指定也应被视为交互的自定义命令类型,这可以增加计入 UI 覆盖率的操作范围。

为何使用 additionalInteractionCommands?

  • 自定义命令支持:跟踪默认集中未包含的自定义 Cypress 命令的交互。
  • 第三方库支持:确保正确识别和跟踪来自第三方测试库(如 cypress-real-events)的交互。
  • 增强报告:通过包含所有相关交互类型,提高 UI 覆盖率报告的准确性。

语法

{
"uiCoverage": {
"additionalInteractionCommands": [
string
]
}
}

选项

additionalInteractionCommands 属性接受一个字符串数组,其中每个字符串表示 UI Coverage 应视为交互命令的命令名称。

选项必填默认值描述
additionalInteractionCommands可选[]一个命令名称(字符串)数组,这些命令名称应被视为默认命令之外的交互命令。

示例

添加自定义交互命令

配置

{
"uiCoverage": {
"additionalInteractionCommands": ["customClick", "dragAndDrop", "swipeLeft"]
}
}

测试中的使用

// 这些自定义命令现在将被跟踪为交互
cy.get('[data-testid="submit-button"]').customClick()
cy.get('[data-testid="draggable"]').dragAndDrop()
cy.get('[data-testid="carousel"]').swipeLeft()

添加第三方库命令

配置

{
"uiCoverage": {
"additionalInteractionCommands": ["realClick", "realType", "realHover"]
}
}

测试中的使用

// 来自 cypress-real-events 插件的命令将被跟踪
cy.get('[data-cy="button"]').realClick()
cy.get('[data-cy="input"]).realType('Hello World')
cy.get('[data-cy="tooltip-trigger"]').realHover()

注意事项

  • 命令名称区分大小写,必须与测试代码中显示的名称完全匹配。
  • 附加命令会与默认交互命令合并,不会替换默认命令。
  • 此配置中应仅包含实际与 DOM 元素交互的命令。
  • 自定义命令必须记录引用主题元素的快照。这确保命令在 Cypress 开放模式/测试重放中呈现元素高亮,并确保 UI Coverage 可以正确将交互归因于预期元素。有关自定义命令的更多信息,请参见此处