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

如何仅重复运行Cypress测试中的指定部分,而非执行整个测试用例

Cypress 单独运行指定测试片段的实现方案

Cypress 完全支持在不执行完整测试用例的前提下,单独运行指定部分的测试逻辑,你可以根据调试场景选择以下适配方案:

1. 缓存前置状态+.only锁定目标测试块

将耗时较长的通用前置逻辑(如登录、测试数据初始化、页面跳转等)封装为自定义命令,配合cy.session()缓存前置操作产生的cookie、本地存储等状态,第一次执行后后续调试不会重复运行前置逻辑,再通过.only锁定需要调试的报错测试块即可。
代码示例:

// cypress/support/commands.js 封装前置命令
Cypress.Commands.add('initTestContext', () => {
  cy.session('test-env-cache', () => {
    // 此处放置原来耗时100秒的前置逻辑
    cy.visit('/')
    cy.login('test@account.com', 'test123')
    cy.enterTargetBizPage()
  })
})

// 测试用例文件
describe('业务测试套件', () => {
  beforeEach(() => {
    cy.initTestContext()
  })

  it('前序非核心测试步骤', () => {
    // 原有前置测试逻辑
  })

  // 仅运行加了.only的目标测试块
  it.only('报错的目标测试步骤', () => {
    // 直接运行报错环节的逻辑
    cy.get('#submit-btn').click()
    cy.should('contain', '预期展示内容')
  })
})

2. 断点调试跳过重复执行

单次临时调试时可以在报错步骤前插入cy.pause(),用例第一次运行到断点位置后,可在Cypress交互控制台直接操作修改页面状态,或选择仅执行后续的调试步骤,无需重新运行完整前置流程。

3. 关闭测试隔离复用上下文

在测试套件配置中关闭测试隔离,上一个测试块产生的页面状态、缓存数据会直接保留到后续测试块,你可以将报错逻辑单独拆分为独立测试块,第一次运行完全部前置步骤后,后续修改调试时仅需要单独运行目标测试块即可。
代码示例:

// 关闭测试隔离,用例间共享上下文
describe('业务测试套件', { testIsolation: false }, () => {
  it('前置步骤块', () => {
    // 耗时100秒的前置逻辑,仅第一次运行时执行
  })

  it('调试目标测试块', () => {
    // 直接复用前置步骤的页面状态,运行报错逻辑
  })
})

注意:关闭测试隔离仅推荐本地调试时使用,正式执行测试用例时建议开启测试隔离,避免用例间互相干扰导致结果不准。

4. 直接注入状态跳转目标页面

如果报错步骤对应独立的页面路由,可以直接注释掉所有前置逻辑,手动注入登录凭证等必要状态后直接访问目标路由,完全跳过所有前置操作。
代码示例:

it('单步调试报错逻辑', () => {
  // 手动注入登录态
  window.localStorage.setItem('auth_token', '预先获取的有效登录凭证')
  // 直接跳转到报错步骤对应的页面路由
  cy.visit('/target/biz/page')
  // 直接运行报错环节的测试逻辑
  cy.get('#confirm').click()
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:15:03