Version 2.0.0 - A comprehensive Flutter automation testing framework with native Android support, intelligent caching, and parallel execution.
- π― Intelligent CLI - Production-ready command-line interface
- β‘ Smart Caching - SQLite-based test result caching (40x faster re-runs)
- π± Device Management - Unified Android & iOS device handling
- π Environment Validation -
doctorcommand checks all dependencies
- π€ Native Dialog Handling - Auto-dismiss Google Credential Picker, permission dialogs
- π Permission Management - Pre-grant permissions before tests
- βοΈ Device Configuration - Disable animations, clear app data
- π§ UI Automator Integration - Java-based watcher for native dialogs
- π Retry Handler - Exponential backoff for flaky tests
- β‘ Parallel Execution - Run tests across multiple devices simultaneously
- πΈ Screenshot & Video - Capture on failure, record test sessions
- π Test Discovery - Tag-based filtering, glob patterns
All documentation has been organized in the doc/ folder:
- Documentation Index - Complete documentation overview
- Real World Usage - How to use in your project
- Enhanced Tester Guide - Advanced testing utilities
- PilotFinder Guide - Intelligent widget finding
- Implementation Complete - Phase 2 & 3 summary
- Phase 2 Complete - Native handling details
# Add to your Flutter project's pubspec.yaml
dependencies:
flutter_test_pilot:
path: ../iltc-services/flutter_test_pilot# 1. Check environment
flutter_test_pilot doctor
# 2. Run a simple test
flutter_test_pilot run integration_test/app_test.dart
# 3. Run with native features
flutter_test_pilot run integration_test/app_test.dart \
--app-id=com.example.myapp \
--native-watcher \
--pre-grant-permissions=all \
--disable-animations# Environment check
flutter_test_pilot doctor
# List devices
flutter_test_pilot devices
# Run test
flutter_test_pilot run <test_file>
# Run with full features
flutter_test_pilot run <test_file> \
--app-id=<package_name> \
--native-watcher \
--pre-grant-permissions=all \
--disable-animations \
--retry=3 \
--screenshot \
--parallel \
--concurrency=3# Pre-grant permissions
--pre-grant-permissions=none|common|all|custom
--custom-permissions=CAMERA,LOCATION
# Native dialog handling
--native-watcher
# Device configuration
--disable-animations
--clear-app-dataFor detailed command documentation, see Documentation Index.
Automatically dismisses native Android dialogs:
- Google Credential Picker
- Permission dialogs
- Location settings
- System alerts
- ANR dialogs
flutter_test_pilot run integration_test/login_test.dart \
--app-id=com.example.myapp \
--native-watcherPre-grant permissions to avoid runtime dialogs:
# Grant all permissions
--pre-grant-permissions=all
# Grant common permissions
--pre-grant-permissions=common
# Grant specific permissions
--pre-grant-permissions=custom \
--custom-permissions=CAMERA,RECORD_AUDIORun tests across multiple devices simultaneously:
flutter_test_pilot run integration_test/ \
--parallel \
--concurrency=3Performance: 3x-10x faster test execution!
Automatically retry flaky tests with exponential backoff:
flutter_test_pilot run integration_test/app_test.dart \
--retry=3Automatically capture screenshots on test failure:
flutter_test_pilot run integration_test/app_test.dart \
--screenshotflutter_test_pilot/
βββ lib/
β βββ src/ # Internal implementation
β β βββ cli/ # CLI commands
β β βββ core/ # Core framework (cache, config, models)
β β βββ native/ # Native Android support
β β βββ executor/ # Test execution
β β βββ discovery/ # Test discovery
β β βββ reporting/ # Screenshots & reports
β βββ flutter_test_pilot.dart # Main export file
β
βββ native_assets/
β βββ android/ # Java UI Automator watcher
β βββ src/main/java/com/testpilot/watcher/
β βββ NativeWatcher.java
β
βββ doc/ # π All documentation
βββ bin/ # CLI entry point
| Feature | Before | After | Improvement |
|---|---|---|---|
| Cached test re-run | 120s | 3s | 40x faster |
| 30 tests sequential | 450s | 150s (parallel) | 3x faster |
| Flaky test success | 60% | 95% (retry) | +58% |
| Tests with dialogs | β Hangs | β Auto-handled | Infinite |
cd native_assets/android
./build_watcher.shThis creates build/libs/native_watcher.apk used for dialog handling.
flutter_test_pilot run integration_test/app_test.dart \
--app-id=YOUR_PACKAGE_NAME \
--native-watcher \
--pre-grant-permissions=allVisit the Documentation Index for:
- Complete feature guides
- Implementation details
- Real-world examples
- Troubleshooting tips
- API documentation
# Environment issues
flutter_test_pilot doctor --verbose
# Clear cache
flutter_test_pilot cache --clear
# Build native watcher
cd native_assets/android && ./build_watcher.sh
# Check devices
adb devicesFor detailed troubleshooting, see Real World Usage Guide.
Copyright Β© ILTC Development Team
Built with β€οΈ by the ILTC Flutter Team