用途:把 Cypress 端到端测试套件迁移到 CodeceptJS 4。触发条件包括仓库根目录存在 cypress.config.{js,ts,mjs}、存在含 e2e/、support/、fixtures/ 等子目录的 cypress/ 目录、devDependencies 中列出 cypress,或测试代码调用 cy.*、Cypress.Commands.add、Cypress.env,以及用户明确要求从 Cypress 迁移。
主要能力:按阶段推进迁移——盘点项目结构与共享抽象;并行安装 CodeceptJS(npx codeceptjs init,选 Playwright helper);映射配置键到 codecept.conf.{js,ts};把 Cypress 自定义命令拆分为 WebExtra(浏览器驱动)与 ApiExtras(纯 HTTP,走 REST helper)两个自定义 helper;把页面对象式模块转为 pages/ 下的页面对象;逐个转换 spec 文件;统一定位器与动作/断言/抓取写法;用 auth 插件替代 cy.session;处理 fixtures、请求与任务。
使用方式:每阶段结束提交以便二分定位回归。转换后用 npx codeceptjs check -c <config> 与 npx codeceptjs list -c <config> 校验,批量用 npx codeceptjs dry-run --steps -c <config> 与 npx codeceptjs run --steps -c <config> 运行。含 I.* 的循环须用 for...of,禁用 forEach。
限制:组件测试(cy.mount、cypress/component/)不迁移,CodeceptJS 仅做 E2E;cy.intercept 加 cy.wait('@alias') 无直接等价,需改用 I.mockRoute() 并以 UI 结果等待;Cypress Cloud 与时间旅行调试器由 aiTrace 插件与 @testomatio/reporter 替代;cy.origin() 多源流程支持有限。首次真实运行通常失败,属预期,需借助调试技能逐项修复。