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

Cypress启用experimentalSessionAndOrigin后所有spec文件消失如何解决

问题原因

开启experimentalSessionAndOrigin开关会触发Cypress 10+版本的E2E模块配置重置逻辑:该特性关联Cypress重构后的跨域控制、会话管理模块,开启后框架会覆盖E2E测试的默认配置项,包括spec文件扫描路径、support入口文件路径,同时自动生成空白的cypress/support/e2e.js作为新的默认support入口,最终导致原有spec文件不在扫描路径内、原有support全局逻辑未被加载,表现为识别为全新项目、历史用例不显示。

解决步骤
  • 修正spec文件匹配规则
    打开项目根目录的cypress.config.js,在e2e配置块中添加specPattern字段,值为你原有spec测试用例的存放路径匹配规则,默认路径规则可参考如下配置,如果你之前自定义过用例存放目录,替换为实际路径即可:
    const { defineConfig } = require("cypress");
    module.exports = defineConfig({
      e2e: {
        experimentalSessionAndOrigin: true,
        // 匹配原有spec文件路径
        specPattern: "cypress/e2e/**/*.cy.{js,jsx,ts,tsx}",
        // 原有setupNodeEvents逻辑保留在此处
        setupNodeEvents(on, config) {},
      },
    });
    
  • 修复support文件加载逻辑
    自动生成的cypress/support/e2e.js为空白文件,你需要将原有support入口文件(旧版本默认路径为cypress/support/index.js)中的所有自定义命令、全局钩子、通用配置代码全部迁移到e2e.js中。如果你不想使用自动生成的e2e.js,也可以在e2e配置块中添加supportFile字段,直接指向你原来的support入口文件路径即可。
  • 排查配置冲突
    如果你是从Cypress 9及更低版本升级到10+版本,检查项目根目录是否残留旧版本的cypress.json配置文件,若存在该文件,将其中所有配置迁移到cypress.config.js后删除旧文件,避免双配置文件加载冲突。
  • 重启Cypress验证
    所有配置修改完成后完全关闭Cypress进程重新启动,即可看到原有所有spec测试用例。此时cy.session()能力已正常可用,将登录逻辑包裹在cy.session()中实现跨用例Cookie持久化即可,参考用法:
    // support/e2e.js中定义登录命令
    Cypress.Commands.add('persistLogin', (user, pwd) => {
      cy.session([user, pwd], () => {
        cy.visit('/login')
        cy.get('[name=username]').type(user)
        cy.get('[name=password]').type(pwd)
        cy.get('[type=submit]').click()
      })
    })
    
    // 用例文件中调用
    describe('业务测试套件', () => {
      beforeEach(() => {
        cy.persistLogin('test_account', 'test_password')
      })
    
      it('测试用例1', () => {
        // 测试逻辑,登录态Cookie自动保留
      })
    
      it('测试用例2', () => {
        // 无需重复登录,Cookie自动复用
      })
    })
    

注意:如果开启该特性后出现跨域访问报错,可额外在e2e配置块中添加chromeWebSecurity: false配置关闭浏览器同源安全限制,适配跨域测试场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:03:27