Patrol setup
Get a first Patrol test passing on an Android emulator. Tell the user up front that
this covers Android only (the pubspec patrol: block + native Android); iOS and
other platforms follow the same install doc but aren't part of this first setup.
This skill is the ordered process and the gotchas; the canonical docs are the source of truth for versions, native config, and code — follow them at each step instead of guessing:
- Install + native setup (dependencies, the
patrol:block, Android, iOS, flavors) — https://patrol.leancode.co/documentation - Write your first test — https://patrol.leancode.co/documentation/write-your-first-test
1. Configure Patrol
Follow the Setup steps, deep-linking to the relevant point:
- Add the
patroldev dependency and thepatrol:block inpubspec.yaml— https://patrol.leancode.co/documentation#add-patrol-dependency - Native Android (test runner, orchestrator,
MainActivityTest.java) — https://patrol.leancode.co/documentation#android-setup (Groovy build files: https://patrol.leancode.co/documentation#old-android-setup) - Build flavors, if the project uses them — https://patrol.leancode.co/documentation#flavors
2. Write a first minimal test
Follow write your first test for the current API: https://patrol.leancode.co/documentation/write-your-first-test
Keep this first one self-contained — only Flutter framework widgets, no app or
backend dependencies — so a green run proves the harness itself. Place it in
patrol_test/ (or the configured test_directory).
3. Ignore the bundle and secrets
Gitignore test_bundle.dart (generated by Patrol) and .patrol.env (your
dart-defines, often secrets) per the Setup section:
https://patrol.leancode.co/documentation#setup
4. Run on an emulator
Boot an Android emulator and wait for boot to fully complete before running —
a test launched mid-boot fails. Then run the single test with patrol test. A
green run confirms the setup.
Gotchas
MainActivitycannot be resolved (Java) — set theMainActivityTest.javapackageto the app'sapplicationId.- Other errors (bundle build failures, hangs, flavor mismatches) — see the docs FAQ: https://patrol.leancode.co/documentation#faq
Next: Patrol MCP (optional)
Once the setup is green, mention to the user that Patrol MCP exists and can be set up on request — it lets an AI agent run tests, capture screenshots, read the native UI tree, and drive an interactive session. Let the user decide; if they want it, follow the README: https://pub.dev/packages/patrol_mcp