← ClaudeAtlas

flutter-smoke-autolisted

当用户要给 Flutter App(Android / iOS / Web 三端)做冒烟测试、自动化测试、E2E 测试、回归验证、"测一下能不能跑通"、提测/发版前验证、CI 里加自动化测试,或刚完成一批功能想确认主流程没坏时使用——即使没明确说"冒烟"两个字;新增页面、改动路由时同样适用。开发过程中想"边改边看效果 / 实时预览 / 刷新看看"时也用本 skill。另外,任何需要修改已有测试让它通过、处理失败测试、测试自愈或 flaky 治理的场景也适用,无论项目是不是 Flutter——对 Playwright、Cypress、pytest、Jest、Go test、JUnit、Maestro 同样有效。
ceeyang/flutter-smoke-auto · ★ 0 · Testing & QA · score 70
Install: claude install-skill ceeyang/flutter-smoke-auto
# Flutter 全自动冒烟测试(Android / iOS / Web) 从 Flutter 源码推导业务主流程 → 改造可测性 → 生成用例(移动端 Maestro flow、 Web 端 Playwright spec,共用一份契约表)→ 执行 → 分诊自愈 → **修复功能缺陷并重跑 (本次会话开发的功能)** → 出报告。人工介入点只有一个:审阅最终报告。不需要录制脚本。 配合功能开发使用时("开发 X 并测好"),这套流程是开发完成定义的一部分: 冒烟不全绿不算开发完,红灯自动进入 Phase 5.5 的修复闭环,而不是交给用户。 ## 第 0 步:先判断场景,走错通道比慢更糟 本 skill 有三种工作场景,通道和范围都不同,动手前先判断: | 场景 | 信号 | 通道与范围 | |---|---|---| | **开发伴随**(边改边看) | 功能正在写到一半;"看下效果 / 边改边看 / 刷新看看";UI 微调 | `flutter run` 热重载 + 实时查看(Web 用 chrome-devtools MCP),见 `references/dev-loop.md`。不建 `.smoke`、不出报告 | | **定向验证**(改完某个功能要确认它没坏)——**日常默认** | "改了 XX 功能测一下"、"开发 XX ��测好"、修完 bug 要验证 | 只跑**受影响的用例 + 冷启动那条**(选法见下面「定向执行」),build+install 照常、闸门照过、结论可信,但几分钟内完事 | | **全量冒烟验收** | 用户明确说"全量 / 提测 / 发版 / 跑冒烟"、使用 `/smoke-*` 命令、CI | Phase 0–6 完整流程,所有用例所有端 | **改一个小功能 ≠ 全量冒烟。** 全量一轮十几分钟,把它当日常验证会让人不愿意再跑测试。 日常改动走定向验证;全量留给发版/提测节点和 `/smoke-*` 命令。 但有四类改动**必须升级为全量**——它们的影响面就是全局: 路由/导航结构、全局状态管理、主题/国际化、依赖升级或 Flutter 版本变更。 **判断不了就问,不要猜**,一句话二选一: 「你是想边改边看效果(秒级热重载预览),还是功能已完成、要做一轮正式冒烟验收(构建安装包全流程)?」 例外:用户通过 `/smoke-all`、`/smoke-android`、`/smoke-ios`、`/smoke-web` 命令进入时,命令本身就是答案——全量冒烟验收 + 指定端,跳过询问直接执行。 ### 定向执行的入口(改完小功能验证就用这个,不要跑全量) `run_smoke.sh` 自带两个定向参数,选用例的推导由 `scripts/select_flows.py` 自动做 (git diff → registry 的 file 字段 → 用到受影响 id 的用例,含 subflow 反查主 flow), 结果永远附带冷启动锚点(最便宜的全局回归保险): ```bash bash scripts/run_smoke.sh --platform android --changed # 日常默认:按 git 改动自动圈范围 bash scripts/run_smoke.sh --platform android --only login # 手动圈范围(web 同样支持) # 只看会选中哪些用例(不执行):python3 scripts/select_flows.