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

如何阻止Cypress在每个测试用例(it)执行后关闭浏览器?

解决Cypress每个测试用例后关闭浏览器的问题

Cypress默认会为每个it测试用例创建独立的浏览器上下文(执行后重置/关闭),以此保证测试的隔离性。要让多个测试用例共享同一个浏览器会话,有两种常见方案:

方案1:关闭测试隔离配置

在Cypress配置文件(cypress.config.js/cypress.config.ts)中设置testIsolation为false,所有测试用例就会共用同一个浏览器上下文,不会在it执行后关闭浏览器:

module.exports = {
  e2e: {
    testIsolation: false,
    // 其他配置项...
  },
};

修改后你的原有测试代码结构可以保留,第一个用例打开Google后,第二个用例能直接在当前页面继续操作。

方案2:合并测试步骤到同一个it块

如果不需要拆分独立的测试用例报告,也可以把打开页面和搜索的逻辑合并到一个it块中,自然不会出现浏览器关闭的问题:

/// <reference types="cypress" />
context("Dummy test cases", () => {
  it("open Google and search keyword", () => {
    cy.visit("www.google.com");
    cy.get(".gLFyf").type("cypress{enter}");
  });
});

额外说明

  • 关闭testIsolation后,测试用例会共享状态,前一个用例的操作会影响后续用例,需要确保测试逻辑的顺序合理性。
  • 如果只是需要在每个测试用例前重复执行前置操作(比如打开页面),可以使用beforeEach钩子,但此时每个it仍会重置上下文,只是自动重复执行前置步骤:
context("Dummy test cases", () => {
  beforeEach(() => {
    cy.visit("www.google.com");
  });

  it("search a keyword", () => {
    cy.get(".gLFyf").type("cypress{enter}");
  });
});

内容的提问来源于stack exchange,提问作者Yogendiran Barath

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 14:10:19