用途:在处理任何 CodeceptJS 4 项目时首先运行,先学习框架规则,再探明项目已配置内容,用于编写、调试、重构或迁移测试前的准备。
门禁要求:CodeceptJS 4 仅支持 ESM/TypeScript,测试、配置、页面对象、辅助器均使用 import/export;package.json 无 "type": "module" 需先添加;TypeScript 项目用 codecept.conf.ts 并在 require 中配置 TS loader。若项目为 3.x 或 CommonJS(require()、已移除的 autoLogin、Nightmare 辅助器),应停止并推荐 migrate-codeceptjs-4,迁移是全项目级而非逐文件修补。
主要规则:测试从用户视角写成线性、可读的场景;测试声明式、辅助器命令式;低级访问可放入辅助器并暴露 I.* 动作;优先语义定位器。摆放建议:全站操作用 actor 文件,页面动作用页面对象,全站组件用页面片段,驱动级访问用辅助器,数据准备用数据对象。
架构:配置文件位于仓库根目录 codecept.conf.{js,ts,mjs,cjs},可用 --config 指定。I 委托给活动辅助器执行,后端可互换。依赖注入容器统一注册 actor、辅助器、页面对象等,类自动实例化,inject() 返回惰性代理,支持循环引用。自定义辅助器继承 Helper。插件为生命周期事件监听器。
注意:@codeceptjs/configure 会在加载时变更配置,静态值可能失真。常用插件包括 retryFailedStep、screenshot、pageInfo、auth、aiTrace、pause、heal、screencast、customLocator、browser;可用 -p 按次运行启用或重配,如 npx codeceptjs run -p aiTrace。
effects 需从 codeceptjs/effects 导入:tryTo、retryTo、hopeThat、within;元素 API 从 codeceptjs/els 导入 element、eachElement、expectElement 等。编写测试每个文件一个 Feature,钩子包含 Before、After、BeforeSuite、AfterSuite、Fail;grab* 与导入函数需 await,普通动作步骤不需要。
定位与等待:优先 ARIA 定位器,动作接受字符串或对象,上下文作为最后一个参数;动作步骤自动等待,仅在条件不绑定交互时添加显式等待,避免 I.wait(N)。断言优先内置浏览器断言,其次自定义断言、ExpectHelper、codeceptjs/assertions、任意库或 hopeThat 软断言。
探索项目步骤:先 npx codeceptjs check 验证加载,再读活动配置,npx codeceptjs list 列出动作,npx codeceptjs dry-run 列出测试。注意 4.1.0 中 dry-run --grep 与 run --grep 选取集合不同。Gherkin 项目用 npx codeceptjs gherkin:steps。参考文档位于 node_modules/codeceptjs/docs/。
限制:资料未提供具体项目配置、依赖版本、环境变量与运行结果,需按上述命令实际探查;不应据猜测建议 I.* 方法。