patrol-setup

Sets up automatic testing for Flutter apps so you catch bugs before users see them.

Installation
Run `npx skills add "https://github.com/leancodepl/patrol" --skill "patrol-setup"` to install this skill, then follow its SKILL.md instructions for my next request.

Paste this into Claude Code, Cursor, or any agent that can run commands.

SKILL.mdShow the author's original SKILL.md
---
name: patrol-setup
description: Set up Patrol end-to-end (E2E) testing in a Flutter project for the first time — configure the pubspec `patrol` block, wire native Android, and get a first minimal test passing on an Android emulator. Covers Android only (iOS and other platforms follow the same install doc). Use when adding Patrol to a project that does not have it yet.
---

# 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 `patrol` dev dependency and the `patrol:` block in `pubspec.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

- **`MainActivity` cannot be resolved (Java)** — set the `MainActivityTest.java`
  `package` to the app's `applicationId`.
- **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

Mirrored from the author's public source. Install counts from the open skills registry.

The systems behind these skills get built for partners every week.

Partner with us