SuperAPI AI 工具集

patrol-e2e-testing

测试与质量

查看项目

更新于 10-15 21:39

技能介绍

用途:在 Flutter 项目中用 Patrol 4.x 设计、实现并运行端到端(E2E)测试。适用于新页面或用户流程需要 E2E 覆盖、功能涉及原生组件(权限、通知、系统对话框、深度链接)、将 UI 缺陷固化为回归测试、验证 Android/iOS/Web 跨平台行为,以及在新项目或现有项目中初始化 Patrol 时。

主要能力:提供 Patrol 测试结构、按 Key/文本/类型/图标定位组件、点击与文本输入、滚动、显式等待;支持原生权限弹窗处理(如 $.native.isPermissionDialogVisible、grantPermission、grantPermissionWhenInUse)、打开通知栏并按文本点击通知;支持通过标签筛选、指定文件运行、桌面开发模式与 Web(含 headless)运行。

必要用法:安装与初始化参考官方文档 https://patrol.leancode.co/documentation#setup。将 patrol 添加为 dev 依赖,测试放在 patrol_test/,文件名以 _test.dart 结尾。运行:patrol test(全部)、patrol test --target patrol_test/login_test.dart(指定文件)、patrol develop -t integration_test/my_test.dart(开发模式)、patrol test --device chrome(Web)、patrol test --device chrome --web-headless true(CI 无头)、patrol test --tags android(标签过滤)。测试用 patrolTest() 而非 testWidgets(),$ 为测试器,用 $(#keyName) 定位。凭据用 String.fromEnvironment 读取,不硬编码。

限制:不要用 Future.delayed 作同步,应使用 waitUntilVisible 或 waitUntilExists;动画用 pumpAndSettle;慢 CI 可设 settleTimeout。提交前应在本地运行 patrol test --target <file> 确认通过。