@aerokit/test

中文文档
15.15.0发布于 2026/11/04EPL-2.0ES Module零依赖构建来源已验证近 30 天下载 2271

执行意图模块生成的 . test express 以运行中的 Eclipse Dirigible 为例的普通 Playwright 跑取器

中文使用文档
文档目录3 节
  1. 从模块使用
  2. 每个实体的流量
  3. 自定义 UI 钩子

@aerokit/测试

出版说明 : 每次发布都会将此文件夹公布为 @aerokit/test,以 平台。 消费者依赖 @aerokit/test 导入 @aerokit/test 编号 : @aerokit/test/fixtures与前作相反的绳索 @aerokit/sdk/test 子路径保存 解决时 @aerokit/sdk 仍然飞来飞去 @aerokit/sdk 正在贬值: 切换 导入和依赖 @aerokit/test。 。 。 .

常规 剧作家 执行意图模块生成的运行程序 <name>.test 明确反对正在运行的 Eclipse Dirigible 实例。 清单(由 AppTestIntentGenerator 内 engine-intent,同时 .edm编号 :.model编号 :.bpmn说什么 app 承诺——实体、布局、字段、种子、语言;这个软件包知道如何验证一个 承诺反对生成的Harmonia UI和再利用的REST控制器. 因此,一个跑者,版本 检查每个生成的应用软件.

这是应用集成测试表面(从外部驱动浏览器+REST层) (见A/CN.9/WG.III/WP.III/WP.1号文件)。 它不同于 @aerokit/sdk/junit,内置服务器侧单元测试外观.

从模块使用

模块保持微小 test/ 利用技术 重传根 (在已公布的项目文件夹之外,所以) 它从未进入注册或npm包:

// test/app.spec.js
import { fileURLToPath } from 'node:url';
import { runTest } from '@aerokit/test';

runTest(fileURLToPath(new URL('../<project>/<name>.test', import.meta.url)));
// test/package.json
{
  "type": "module",
  "scripts": { "test": "playwright test" },
  "devDependencies": { "@aerokit/test": "*", "@playwright/test": "^1.45" }
}
BASE_URL=http://localhost:8080 npm test        # defaults: admin/admin, installed Chrome
APPTEST_SHELL=1 npm test                       # also assert the shared-shell menu item
APPTEST_A11Y=strict npm test                   # fail on serious/critical accessibility violations

信封 : BASE_URL (默认) http://localhost:8080, (中文(简体) ), APPTEST_USERNAME编号 :APPTEST_PASSWORD (默认) admin编号 :admin, (中文(简体) ), APPTEST_SHELL (opt-in-suple- shell slow), (选择共享- shell slow), , (原始内容存档于2017-09-31), APPTEST_A11Y (单位:千美元)report 默认, strict, (中文(简体) ), off - 无障碍流动).

每个实体的流量

  • 列表 外壳面包屑用其复数标签、申报栏和 (当 expectSeedData)一行来. 其清单载有的实体 list 使这些 柱子,按顺序排列,并留下一个字段,它必须完全没有标题 list 栏 他们的田地 major 没有 false。 。 。 .
  • 钉子 – UI 创建 ~ 过滤 ~ 行出现; 通过行菜单编辑 ~ 保存(a) document 保存在 位置,所以行走通过取消);通过行菜单删除 +确认 → 消失。 散步时 半衰期仍会删除测试行。 无实体 route (a) 组成 儿童没有自己的页面)没有列表, crud,多语种或 shell 流.
  • 休养 – 同样的 CRUD 通过生成的 Java 控制器 APIRequestContext (同位素数) 后端 vs UI 失败),坚持表单的字段名绑定并删除出值 404 —或, 对一实体a whenDeleted: refuse 程序卫士, 拒绝的记录仍然服务.
  • 多语种 ——切换共享语言密钥,重新装入,一种子行显示其被翻译出的名称. 此断言等待列表本身的数据获取并允许 15 s; 失败名称 Accept-Language 被发送,无论它的身体 携带预期的单词,和表的第一个 排行,所以缓慢的翻译 读取与缺失的翻译不同.
  • 来,来 - 个人(我的)表面WIRE合同,当清单标出实体时 personal数字 : 通过范围创建 <Entity>MyController (所有者 FK 强制服务器侧),每 sensitive 字段在个人电线上无效,个人名单上的自行,外行404(当 所有者关系是可选的),自行删除. 当测试用户没有时用指针跳过 身份映射(种子为dev身份行). 个人 用户 等值( 已解决的标签、 聊天、, 个人弹壳上的日历) 等价修正.
  • 外壳 (opt-in)——共享应用程序 shell的导航项目在其iframe中打开了模块SPA.
  • a11y (韩语) 轴-核心扫描列表页面和创建格式,以对应WCAG 2.1 A/AA并附上 每一页的结果( e)axe-<Entity>-<page>.json)到测试报告. APPTEST_A11Y=report (默认)只报告 - 一个模块的第一次发布; strict 失败于 a serious 或者说 critical 违反; off 跳过它。 需求 @axe-core/playwright 在绳子上 devDependencies (流自自取而去而去. 与Harmonia自己的矛盾 --primary 不在严格模式中计算:默认调色板错过了4.5:1 组件库修正;其他所有对比失败都是.

测试记录带有 APPTEST- 前缀并被删除;种子数据从未变异. 应用程序拥有的字段而不是用户的字段—— a number: 序列,计算或 readOnly: 价值 - 绝不是经文的,也不是经文的 readOnly) (中文(简体) ). 表单所构成的关系 只读——a calculatedActionOnUpdate一个平台拥有的FK 旗子相同,从不 被UI选中了 创建后固定的关系( N)fixedAfterCreate: true载体 readOnlyOnEdit: 这是 在创建上选中, 并且从未被编辑更改, 生成的应用以 409 回答 。 宣布一个字段 pattern: 获得该形状的值而不是标记字符串。 可选 pattern: 字段 样本中没有任何候选人(如IBAN)是空的 标记,所以控制器的 400 名字段。 A 类 dependsOn 关系被取样以与其 触发器,随着形式缩小: filterBy 触发器是受抚养人的行 filterBy 名称; 与 valueFrom 所依赖的行是: filterBy (或按键)等于触发行 valueFrom关系a agree 检查姓名被选中 目标一致 uniqueKeys 条目被赋予关系组合 无活行 随身携带,其余的和被碾碎的流 跳过键 命名时,每一个尝试组合. 插槽实体的起步( 列表为 slots 窗口)是一个在小时之内开始的随机网格 因此服务器的插槽规则(400个窗外,409个窗外) 预定的空档)从不拒绝;REST请求名称 UTC 作为 X-Time-Zone,它所在的区域 计算. 关系 pickable 只能从各行中取样 故从人所造作的记录,是不会保存的 forbiddenTarget 仅来自 排行记录自己的 forbidWhen 不拒绝,这是REST流量需要的,没有 取取取取读取. 当没有行时, 需要的关联没有命名规则本身的信息 而不是"无行"。 目标被标记为 stampOn: issue 数字携带 labelDocumentNumber: 采取器显示尚未发布的每行“ (草稿) ” , 所以样本 是一行被印章,按其编号取出;没有被印章,但可选关系没有设定 a 需要选择“(草案)”.

自定义 UI 钩子

runTest(manifest, { extend }) (单位:千美元)runAppTest 仍为被贬值的别名:

  • widgets: { '<widget>': async (page, field, value) => ... } ——自定义部件填充器.
  • entities: { <Entity>: { skip: ['delete'], beforeCreate, afterCreate } } ——活性悬钩.

手写规格 test/custom/*.spec.js 导入 @aerokit/test/fixtures (登录前) test,一个 api 客户端, expect)所以登录/baseURL/清理都可以免费.

版本与发布记录

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

版本发布日期距今
15.15.0latest2026/11/043 天前
15.14.02026/11/044 天前
15.13.02026/11/034 天前
15.12.02026/11/025 天前
15.11.02026/10/317 天前
15.10.02026/10/318 天前

关于 @aerokit/test 的常见问题

@aerokit/test 是什么?

执行意图模块生成的 . test express 以运行中的 Eclipse Dirigible 为例的普通 Playwright 跑取器

如何安装 @aerokit/test?

在项目目录运行 npm install @aerokit/test,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@playwright/test(>=1.45)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aerokit/test 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/aerokit__test 是否存在。

@aerokit/test 支持 ESM 还是 CommonJS?

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

@aerokit/test 可以商用吗?

@aerokit/test 使用 EPL-2.0 许可。声明的许可为 EPL-2.0,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@aerokit/test 的下载量有多少?

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

@aerokit/test 还在维护吗?

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