// the find
leancodepl/patrol
Flutter-first UI testing framework. Ready for action!
Patrol is an E2E testing framework for Flutter that layers native OS automation (permissions, notifications, wifi/cellular toggles, dark mode) and a more ergonomic finder API on top of Flutter's integration_test. It's for teams shipping Flutter apps who've hit the wall of what integration_test can drive — anything that touches the platform outside the widget tree.
Native automation covers real gaps in Flutter's official tooling: permission dialogs, notification taps, deep links, network state — things integration_test literally cannot touch. The custom finder syntax ($()) cuts real boilerplate versus raw WidgetTester and is usable standalone via patrol_finders without adopting the CLI/native stack. Built and dogfooded by LeanCode in production apps with millions of users, and the e2e_app test suite plus dozens of CI workflows (multiple Flutter channels, real devices/emulators) show the platform matrix is actually exercised, not just claimed.
Adopting it means a second toolchain, not just a package: patrol_cli, platform-specific setup (e.g. the recent SPM migration for iOS), and a codegen step (gen_from_schema) if you need a native automation method that isn't already exposed. Native support is scoped to whatever LeanCode has implemented per platform — anything outside that list drops you back to plain integration_test. The README doesn't address flakiness or retry behavior at all, which is notable for a framework whose whole premise is driving native OS dialogs from CI. It's also a company product first: the README carries as much LeanCode service marketing as documentation.