如何在Cypress中通过命令行运行所有spec文件且浏览器不重置
Cypress 命令行实现等同于GUI「Run all specs」不重置浏览器的操作方法
方法1:开启内置配置(推荐)
Cypress从7.3.0版本开始提供了对应配置,可直接对齐GUI模式下「Run all specs」的运行逻辑:
- 打开你的Cypress配置文件(
cypress.config.js/cypress.config.ts,旧版本为cypress.json) - 新增对应配置项:
新版JS/TS配置示例:
旧版const { defineConfig } = require('cypress') module.exports = defineConfig({ e2e: { experimentalRunAllSpecs: true } })cypress.json配置示例:{ "experimentalRunAllSpecs": true } - 命令行运行时指定你需要的3个spec文件即可,示例:
如果你需要跑所有spec,直接运行cypress run --spec "cypress/e2e/spec1.cy.js,cypress/e2e/spec2.cy.js,cypress/e2e/spec3.cy.js"cypress run即可,运行逻辑和GUI点击「Run all specs」完全一致,所有spec会打包拼接执行,浏览器上下文不会在spec之间重置。
方法2:手动创建入口spec文件(兼容所有版本)
如果你的Cypress版本低于7.3.0,可以用手动导入的方式实现相同效果:
- 新建一个总入口spec文件,比如命名为
all-specs.cy.js - 在文件内按依赖顺序导入三个spec文件:
import './spec1.cy.js' import './spec2.cy.js' import './spec3.cy.js' - 命令行直接运行这个总入口spec即可:
cypress run --spec "cypress/e2e/all-specs.cy.js"
两种方式运行时,三个spec之间的本地存储、Cookie、页面状态都会被保留,和GUI模式的「Run all specs」行为完全一致。
内容的提问来源于stack exchange,提问作者user3850734
相关产品推荐
相关产品推荐

