@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 —或, 对一实体awhenDeleted: 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失败于 aserious或者说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/清理都可以免费.