SuperAPI AI 工具集

patrol-setup

测试与质量

查看项目

更新于 10-15 15:11

技能介绍

用途

本技能用于在 Flutter 项目中首次搭建 Patrol 端到端(E2E)测试环境,目标是让第一个 Patrol 测试在 Android 模拟器上跑通。需要提前告知用户:本流程仅覆盖 Android(pubspec 中的 patrol: 块 + 原生 Android 配置);iOS 及其他平台遵循相同的安装文档,但不属于本次首次配置的范围。

本技能提供的是有序的流程步骤与常见坑点;版本、原生配置和代码的权威来源是官方文档,每一步都应遵循文档而非猜测:

  • 安装 + 原生配置(依赖、patrol: 块、Android、iOS、flavors):https://patrol.leancode.co/documentation
  • 编写第一个测试:https://patrol.leancode.co/documentation/write-your-first-test

主要能力与使用方式

1. 配置 Patrol

按照 Setup 步骤操作,并深链到相关要点:

  • 在 pubspec.yaml 中添加 patrol 开发依赖和 patrol: 块:https://patrol.leancode.co/documentation#add-patrol-dependency
  • 原生 Android 配置(test runner、orchestrator、MainActivityTest.java):https://patrol.leancode.co/documentation#android-setup
    • Groovy 构建文件:https://patrol.leancode.co/documentation#old-android-setup
  • 如果项目使用了构建 flavors,则进行相应配置:https://patrol.leancode.co/documentation#flavors

2. 编写第一个最小化测试

按照“write your first test”文档使用当前 API:https://patrol.leancode.co/documentation/write-your-first-test

第一个测试应保持自包含——只使用 Flutter 框架组件,不依赖应用或后端——这样一次绿色通过即可证明测试框架本身可用。将其放在 patrol_test/(或配置的 test_directory)目录中。

3. 忽略 bundle 与密钥文件

按照 Setup 章节,将 test_bundle.dart(由 Patrol 生成)和 .patrol.env(你的 dart-defines,通常包含密钥)加入 gitignore:https://patrol.leancode.co/documentation#setup

4. 在模拟器上运行

启动 Android 模拟器,并等待其完全启动完成后再运行——在启动中途启动测试会失败。然后用 patrol test 运行单个测试。绿色通过即确认配置成功。

常见坑点

  • MainActivity 无法解析(Java)——将 MainActivityTest.java 的 package 设置为应用的 applicationId。
  • 其他错误(bundle 构建失败、卡住、flavor 不匹配)——参见文档 FAQ:https://patrol.leancode.co/documentation#faq

后续:Patrol MCP(可选)

配置跑通后,可以告知用户 Patrol MCP 的存在,并可按需配置——它允许 AI 智能体运行测试、截取屏幕截图、读取原生 UI 树并驱动交互式会话。由用户决定是否使用;如需使用,请遵循 README:https://pub.dev/packages/patrol_mcp

适用场景与限制

  • 适用场景:Flutter 项目首次引入 Patrol 进行端到端测试,尤其是需要在 Android 模拟器上验证测试框架可用性的场景。
  • 限制:本技能仅覆盖 Android 平台;iOS 及其他平台不在首次配置范围内。版本、原生配置和代码以官方文档为准。