aily Blockly E2E测试体系揭秘:Playwright+Electron自动化测试与AI执行手册完整设计指南

发布时间:2026/10/23 22:23:12

aily Blockly E2E测试体系揭秘:Playwright+Electron自动化测试与AI执行手册完整设计指南 aily Blockly E2E测试体系揭秘PlaywrightElectron自动化测试与AI执行手册完整设计指南【免费下载链接】aily-blocklyAI IDE for hardware development, support Arduino, MicroPython, ESP32, STM32, RP2040, Nrf5x...项目地址: https://gitcode.com/gh_mirrors/ai/aily-blocklyaily Blockly是一款面向硬件开发的 AI IDE支持 Arduino、ESP32、STM32、RP2040、nRF5x 等开发板。它的 E2E 测试体系基于Playwright 的_electronAPI直接启动 Electron 桌面应用对生产构建产物做真实回归并配套一份专为 AI 编码代理设计的执行手册AI Runbook让自动化测试既能跑得起来也能说得清楚。一、为什么桌面应用的 E2E 测试很难做普通 Web 应用用 Playwright 测浏览器就行但 aily Blockly 是一个Electron 桌面应用还牵扯编译工具链、开发板包、SDK 安装等重型操作。常见痛点有三个产物失真开发环境dev server能跑不代表生产打包产物能跑进程难管每个用例都要真实启动一个 Electron 实例还有编译、终端等子进程要清理批量测试成本高验证所有开发板 项目广场全部项目动辄几小时失败后从哪继续aily Blockly 的方案可以概括为一句话用生产路径跑测试、用断点扛长流程、用 AI 手册管执行纪律。二、工作原理三步启动真实的生产应用整个 E2E 体系的核心配置在 playwright.config.ts关键逻辑分三步1. 全局构建每次都用最新代码全局设置文件e2e/global-setup.ts会在测试启动前执行ng build --base-href ./然后把 Angular 产物从dist/aily-blockly/browser暂存到项目根目录的renderer/。这正是electron-builder打包时的映射关系browser→renderer每次运行都重新构建不复用旧产物确保测试针对的是当前源码。2. 启动夹具像用户一样打开应用启动夹具e2e/fixtures/electron-app.ts用 Playwright 的_electron.launch以项目根为工作目录启动 Electron 主进程electron/main.js。主进程走非--serve分支通过loadFile(renderer/index.html)加载生产渲染层——无需完整打包安装却跑的是真实生产路径。夹具还处理了三个工程细节每个测试使用独立的临时--user-data-dir隔离用户配置不污染真实数据应用会预缓冲若干about:blank子窗口夹具通过检测app-main-window标签精确定位真正的主窗口关闭应用时优先调用app.quit()走优雅退出让编译、终端等子进程完成清理超时才强制杀进程树。3. 测试策略串行 失败留痕由于每个用例都真实启动 Electron配置里设置workers: 1串行执行避免多实例争抢窗口与资源失败时自动保留trace、截图、视频retain-on-failure方便事后复盘。三、测试套件从冒烟到全开发板编译测试用例统一放在e2e/tests/目录按覆盖范围分为三档完整清单见e2e/README.md档位代表用例覆盖内容✅ 默认运行smoke.spec.ts、guide.spec.ts、tools.spec.ts、aily-chat.spec.ts启动、主窗口、指南页、串口监视器/终端、AI 聊天离线 UI✅ 默认运行compile-diagnostic.spec.ts、error-decision.spec.ts、full-flow-checkpoint.spec.ts编译器根因诊断、错误决策、断点续跑等辅助逻辑回归⏭️ 需环境变量blockly-editor.spec.ts、compile.spec.ts、full-flow.spec.ts打开已有项目、真实编译、单/全开发板与项目广场全流程其中full-flow.spec.ts是全流程核心指定开发板后自动完成选板 → 新建项目 → 安装依赖 → 冷编译 → 热编译的完整链路第二板还会额外验证 QEMU/GDB 块级调试闭环simulator-debug.spec.ts。常用运行入口# 完整回归重新构建生产渲染层后运行 npm run test:e2e # 只跑某个用例文件 npm run test:e2e -- smoke.spec.ts # 有界面调试 / 打开 HTML 报告 npm run test:e2e:headed npm run test:e2e:report所有入口都通过scripts/run-e2e.mjs转发给 Playwright CLI并自动判断是否为交互终端TTY来决定错误提示行为。四、断点续跑让几小时的批量测试可以中断后继续全流程测试指定开发板 / 所有开发板 / 项目广场耗时可能长达数小时e2e/full-flow-checkpoint.ts实现了断点机制待处理条目持久化到e2e/.artifacts/full-flow-checkpoints/下的模式文件如all-boards.json成功项自动移除失败项保留再次执行相同命令时自动从剩余条目继续删除对应 checkpoint 文件即可从头开始交互终端下遇错会标红提示输入c视为已处理并继续输入a中止并保留断点设置AILY_E2E_STOP_ON_ERROR0则无人值守跑完再统一汇总项目广场支持可复现抽样SAMPLE_RATESAMPLE_SEED例如 builder 验证时随机抽取 50% 项目相同 seed 保证续跑时选择同一批项目。五、AI 执行手册把怎么测写成机器可执行的纪律这套体系最有特色的部分是e2e/AI-RUNBOOK.md——一份面向 AI 编码代理的执行手册。它不按测试文件组织而是按操作类型组织规定了 AI 在什么场景下必须跑哪些测试、通过标准是什么、什么不能跳过操作类型场景必测内容OP-UI-CHANGE普通 UI/路由改动冒烟 受影响页面用例合并前跑默认全集OP-BUILDER测试编译工具 aily-builder辅助逻辑回归 代表板冷/热两轮编译 项目广场 50% 抽样OP-RELEASE发布前验收默认 E2E 冷环境 builder 全开发板 项目广场全量OP-FAILURE-RETRY失败定位原命令断点续跑 报告分析禁止弱化断言凑通过手册还定义了AI 错误归因与自动跳过规则项目广场中的失败必须先归入builder/project/environment-or-unknown三类只有凭证据确认是项目自身问题的条目才允许加入跳过列表SKIP_PROJECT_IDSbuilder 或环境问题一律不得跳过。测试完成后AI 必须按固定的 YAML 结构汇报版本、命令、退出码、跳过项与覆盖缺口release_decision只有pass或blocked不允许基本通过这种模糊结论。六、这套设计对普通开发者的启示 即使你不在维护 aily Blockly这套 E2E 体系也提供了桌面应用自动化测试的完整参考清单测生产路径而不是开发环境——用打包同款产物启动应用才能发现真实问题夹具隔离一切状态——临时用户数据目录 优雅退出兜底强杀测试之间互不污染长流程必须可断点——批量验证开发板/项目时中断续跑能把数小时的重跑成本降到失败点之后给 AI 一份带纪律的手册——明确必测/不能证明/汇报格式AI 代理才能可靠地承担回归与发布验收职责。说明当前 E2E 未覆盖上传烧录流程因为它需要真实外设不便在 CI 稳定运行发布前该项由人工验收补充详见e2e/AI-RUNBOOK.md的覆盖边界章节。想动手体验只需克隆仓库、执行npm ci安装依赖后在项目根目录运行npm run test:e2e第一次跑完再看npm run test:e2e:report的 HTML 报告你就能完整感受这套 Playwright Electron AI 执行手册的组合拳。【免费下载链接】aily-blocklyAI IDE for hardware development, support Arduino, MicroPython, ESP32, STM32, RP2040, Nrf5x...项目地址: https://gitcode.com/gh_mirrors/ai/aily-blockly创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/23 20:31:32

免费QQ空间备份工具GetQzonehistory:扫码导出你的全部历史说说

免费QQ空间备份工具GetQzonehistory:扫码导出你的全部历史说说 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 去年整理旧照片时,你想从QQ空间里翻出大学时期的几…

2026/10/23 22:22:00

macOS上Python环境管理:Homebrew与pyenv多版本切换实践

简介:这份资源是一份面向macOS用户的Python安装方法图文指南,覆盖三种主流方式:通过Homebrew安装、官网下载.pkg安装包,以及使用pyenv进行多版本管理。适用人群从刚接触Python的初学者到需要维护多个开发环境的进阶开发者&#xf…

2026/10/23 22:22:00

MQL4编程入门:从基础语法到EA与自定义指标实战

简介:面向外汇交易者与编程初学者的MT4 MQL4编程入门资料,系统梳理MetaTrader 4平台内置编程语言的基础用法,帮助读者从零开始建立编写自定义指标与Expert Advisor(EA)的能力。内容以文档形式呈现,围绕自定…

2026/10/23 22:22:00

JavaWeb+MySQL图书馆管理系统源码部署与借阅事务实践

简介:这份 JavaWeb 图书馆管理系统源码面向高校课程设计、毕业设计与 JavaWeb 入门实践者,基于 Servlet、JSP、JavaBean 与 MVC 分层,配合 MySQL 实现图书信息、读者账户、借阅归还及管理员权限等核心业务,可帮助读者理解请求处理…

2026/10/23 22:22:00

50M Qume Linux虚拟机部署与启动排错实战

简介:Qume 是一款体量仅约50MB的轻量级 Linux 虚拟机软件包,面向想在 Windows 环境下快速尝鲜 Linux、又不想进行复杂安装或重启的用户,也适合作为虚拟机工具的入门体验。压缩包共14个文件,以4个bin、3个txt、3个exe、1个dll、1个…

2026/10/23 22:22:00

C语言基础学习路线:编译器、指针、内存与常见陷阱一次打通

简介:《C语言基础(全)》是一份面向C语言初学者与需要巩固基础的程序员的PDF教程,系统梳理从程序设计与C语言入门、变量与输入、表达式与运算符到程序设计的完整知识链。内容涵盖欧几里德算法求最大公约数、编译与解释两种执行方式…

2026/10/23 22:16:57

韩国电子烟技术创新与监管挑战分析

1. 韩国电子烟市场现状与核心矛盾韩国作为全球电子烟渗透率最高的市场之一,其发展轨迹呈现出典型的"技术驱动-监管跟进-用户适应"三角关系。2023年数据显示,韩国成年吸烟者中电子烟使用率已达32.5%,远超全球15%的平均水平。这种爆发…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/23 0:02:26

Verilog实现FPGA密码锁:矩阵键盘与状态机设计实战

说实话,这几年接触了不少想入门FPGA的朋友,如果你问哪个项目能一口气把Verilog的核心基本功串起来,我通常会推荐电子密码锁。这个项目看着不起眼,却把矩阵键盘扫描、按键消抖、状态机设计、动态显示刷新、外设控制这些数字逻辑里的…

2026/10/23 0:02:26

数据服务监控运维实战:从指标体系到告警治理与故障排查

周末凌晨两点,手机震了。第一反应是“数据服务挂了”。打开电脑看了下,果然,某张核心报表的数据产出时间已经超过SLA两小时,下游三个业务方连着发来问询。这种场景,做过大数据运维的人都不会陌生。数据服务的监控与运维…

2026/10/23 0:02:26

FreeRTOS任务通知实战详解:内核原理、API与避坑指南

裸机编程切到RTOS之后,任务之间的通信和同步永远是躲不开的坎。前面聊过队列、信号量、互斥锁、事件组,这次把FreeRTOS任务通知(Task Notification)单独拎出来讲透。原因很简单:任务通知是FreeRTOS里最容易用错、也最容…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑