flutter-e2e

Writes and runs Flutter end-to-end journey tests with the integration_test package on real devices.

Updated Jun 13, 2026
One-click install
npx skills add https://github.com/22Teikk/22Teikk-Agent-Skills-Hub --skill flutter-e2e-22teikk
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: flutter-e2e
Source: https://github.com/22Teikk/22Teikk-Agent-Skills-Hub/tree/main/packs/flutter/skills/flutter-e2e
Command: npx skills add https://github.com/22Teikk/22Teikk-Agent-Skills-Hub --skill flutter-e2e-22teikk

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Multi-screen Flutter flows involving navigation, dependency injection, and real app startup cannot be verified by unit or widget tests alone, leaving critical user journeys untested until manual QA catches failures. ## Core Features & Use Cases - Journey Test Authoring: Writes integration_test suites that boot the real app via app.main(), drive the UI with WidgetTester, and assert dynamic user-entered values rather than static labels. - Stable Selector Strategy: Adds Key-based selectors sourced from actual widget code, with a priority order of Key, find.text, then find.byType. - Device Execution & Goldens: Runs tests on emulators or physical devices with flutter test integration_test -d <device-id>, and captures device-accurate golden screenshots when needed. - Use Case: A task-management app needs proof that creating a task round-trips through the real stack. This Skill writes a journey test that taps the FAB, enters a title, saves, and asserts the new row and updated total appear on a running emulator. ## Quick Start Write and run an integration_test journey test for the create-task flow on my connected Android emulator, asserting the entered task title appears in the list.

Frequently Asked Questions about flutter-e2e

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write Flutter end-to-end tests with integration_test?▼

Add integration_test as an SDK dev dependency, create tests under integration_test/ that call IntegrationTestWidgetsFlutterBinding.ensureInitialized() first, boot the app with app.main(), and drive the UI with WidgetTester. Run with flutter test integration_test -d <device-id>.

What is the difference between Flutter widget tests and integration_test?▼

Widget tests run component logic quickly in a simulated environment, while integration_test boots the full app on a real device or emulator with real plugins, navigation, and DI. E2E complements the test pyramid rather than replacing unit and widget tests.

Can Flutter integration_test run on CI without a physical device?▼

Yes, CI can target a headless desktop device such as -d macos or -d linux, or an emulator, as the cheapest options. Because E2E runs take minutes, gate the CI job on a schedule or pre-ship stage rather than every push.

Why are my Flutter E2E tests flaky or failing?▼

Common causes are selectors invented without reading widget source, missing Key values, fixed Future.delayed sleeps instead of pumpAndSettle, and booting with pumpWidget instead of app.main(). Add Keys to interactive widgets and use runAsync only for genuine async work.

When should I use Patrol instead of integration_test?▼

Patrol is opt-in for native gestures that WidgetTester cannot express, such as platform fling scrolling, biometrics, or system permission dialogs. If integration_test covers the flow, there is no need to adopt Patrol.