@codeceptjs/reflection

中文文档
0.5.2发布于 2026/04/14MITTypeScriptES Module构建来源已验证近 30 天下载 3787

基于AST的反射,用于CodeceptJS测试,套房,和台阶. 安全读取和编辑情景源而不使用regex.

中文使用文档
文档目录8 节
  1. 安装
  2. 为什么
  3. 快开始
  4. 反射类
  5. 击打
  6. 文档
  7. 所需资源
  8. 许可证

@ codeceptjs/ 反应

Test npm

基于AST的反射,用于CodeceptJS测试,套房,和台阶. 安全读取和编辑情景源而不使用regex.

安装

npm install @codeceptjs/reflection

为什么

CodeceptJS测试跑者,治疗者,AI代理,以及MCP服务器需要读取并重写情景源代码. 用Regex来做是脆弱的和不安全的。 这个软件包给了您一个原则性的,AST驱动的API,以便在它的源文件中定位一个步骤,测试,或套件,读取精确范围,并替换它同时保存格式化,注释和元数据.

快开始

import { Reflection } from '@codeceptjs/reflection'

// You have a live CodeceptJS test object (from event.test.before, event.test.after, etc.)
const tr = Reflection.forTest(test)

console.log(tr.read())              // full Scenario(...) source
console.log(tr.fileName)            // path to the source file

// Build an edit — nothing is written yet
const edit = tr.replace(`Scenario('login works', async ({ I }) => { I.amOnPage('/') })`)

console.log(edit.diff())            // unified diff preview
console.log(edit.preview())         // full new source
edit.apply()                        // atomic write to disk

反射类

Reflection.forStep(step, { test })           // StepReflection
Reflection.forTest(test)                     // TestReflection
Reflection.forSuite(suite)                   // SuiteReflection — addTest/removeTest
Reflection.forPageObject(filePath, { name }) // PageObjectReflection — add/replace/remove members
Reflection.project('./codecept.conf.js')     // ProjectReflection — enumerate suites, tests, steps, page objects

每个 forX 反射器暴露出相同的形状 : fileName, (中文(简体) ), read(), (中文(简体) ), replace(),加特定类型存取器. SuiteReflection 财务报告和审定财务报表 PageObjectReflection 还支持方案增加/撤走儿童.

Reflection.project(...) 读取一个 CodeceptJS 配置并给出整个工程的地图——然后将单个目标交给专门的反射器.

击打

在一个文件中替换多个事项, 一个写 :

const batch = Reflection.batch(filePath)
batch.add(sr1.replace('I.click("a")'))
batch.add(sr2.replace('I.click("b")'))
batch.apply()

文档

所需资源

  • 节点.js 18+
  • CodeceptJS 3.x或 4.x(可选对等点——仅在消费者运行时需要)
  • typescript 软件包(可选的对等点——只有在您反映时才需要) .ts 编号 : .tsx 文档)

许可证

麻省理工学院

版本与发布记录

@codeceptjs/reflection 共发布 2 个版本,首次发布于 2026/04/13;过去 12 个月发布了 2 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.5.2latest2026/04/146 个月前
0.1.02026/04/136 个月前

关于 @codeceptjs/reflection 的常见问题

@codeceptjs/reflection 是什么?

基于AST的反射,用于CodeceptJS测试,套房,和台阶. 安全读取和编辑情景源而不使用regex.

如何安装 @codeceptjs/reflection?

在项目目录运行 npm install @codeceptjs/reflection,或使用 pnpm add / yarn add / bun add。

@codeceptjs/reflection 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@codeceptjs/reflection 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@codeceptjs/reflection 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@codeceptjs/reflection 可以商用吗?

@codeceptjs/reflection 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@codeceptjs/reflection 的下载量有多少?

根据 npm 官方下载统计,@codeceptjs/reflection 在 2026/10/10 – 2026/11/08 这 30 天内被下载 3,787 次,日均约 126 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@codeceptjs/reflection 还在维护吗?

最新版本 0.5.2 发布于 2026/04/14(6 个月前);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2026/04/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。