SuperAPI AI 工具集

testing

测试与质量

查看项目

更新于 10-16 00:32

技能介绍

用途:在 microsoft/webui 仓库中编写或修改测试时使用本技能,规范测试位置与选型。

主要能力与用法: Rust crate 测试。单元测试写在代码旁的 #[cfg(test)] 模块,集成测试放在各 crate 的 tests/ 目录。命令:cargo test -p microsoft-webui-handler 测单个 crate;cargo test --workspace 测全部;cargo xtask test 走 xtask(质量门的一部分)。每次代码改动都要带测试:新增公开 API 每个函数/方法至少一个单元测试;修复缺陷需有在修复前会失败的回归测试;性能变更需前后基准对比;重构需现有测试原样通过。不得移除、削弱或 #[ignore] 既有测试,除非明确要求。

共享测试工具:webui-test-utils crate 提供通用 Rust 测试辅助、builder 与 fixture,写新辅助前先查此处以免跨 crate 重复。以 [dev-dependencies] 引入:webui-test-utils = { path = "../webui-test-utils" }。

webui-framework E2E fixture:packages/webui-framework 使用 Playwright,每个 fixture 是由真实管线编译渲染的小型 WebUI 应用。目录结构含 src/index.html、组件目录(.html 与可选 .css)、state.json、element.ts、<name>.spec.ts、可选 webui.config.json。测试服务器 fixture-render.ts 自动发现含 src/index.html 的 fixture,调用 build() + render() 生成带模板 IIFE、hydration 标记与 inventory 的 SSR HTML,输出在 /<name>/fixture.html。

运行:cd packages/webui-framework 后 pnpm build、pnpm test、npx playwright test(仅 E2E)、npx playwright test tests/fixtures/<name>/(单个 fixture)。@microsoft/webui-test-support 提供 registerCompiledTemplate、renderTemplateScript、renderFixtures、buildFixtureEntries、startFixtureServer。

适用场景选型:Rust 解析/渲染/状态/表达式逻辑用 #[test] 单元测试;完整管线集成用 tests/ 集成测试;Rust 性能用 cargo bench 与 Criterion;框架 hydration、响应式更新与 DOM 行为、路由导航、懒加载、链式 diff 用 Playwright E2E fixture;模板元数据编解码用 Node 单元测试(pnpm test:unit)。限制:上述命令与路径以仓库资料为准,未提供的平台、版本、收费等信息暂未提供。