用途:为 Flutter 项目配置集成测试环境,启用 Flutter Driver 扩展,并把通过 MCP 进行的交互探索固化为可重复运行的集成测试。
主要能力:添加集成测试依赖;在应用入口启用 Flutter Driver 扩展;通过 Dart/Flutter MCP 工具(launch_app、get_widget_tree、tap、enter_text、scroll、waitFor 等)交互式探索界面并定位控件;按 flutter_test API 编写测试;用 flutter drive 在 Chrome、无头 Web、Android 本地或 Firebase Test Lab 上执行;支持性能剖析。
使用方式:先执行 flutter pub add 'dev:integration_test:{"sdk":"flutter"}' 与 flutter pub add 'dev:flutter_test:{"sdk":"flutter"}',在入口调用 enableFlutterDriverExtension(),为关键控件添加 ValueKey。测试放在 integration_test/ 目录,文件名用 <name>_test.dart,main() 中调用 IntegrationTestWidgetsFlutterBinding.ensureInitialized(),用 tester.pumpWidget、tester.tap、tester.pumpAndSettle、expect 等编写断言。宿主驱动脚本 test_driver/integration_test.dart 调用 integrationDriver()。执行示例:flutter drive --driver=test_driver/integration_test.dart --target=integration_test/app_test.dart;Chrome 需先运行 chromedriver --port=4444 并加 -d chrome。
适用场景:需要端到端验证 Flutter 应用交互流程、将探索性操作转为回归测试,或采集滚动等性能时间线。
限制:需维护宿主驱动脚本;pumpAndSettle 遇无限动画会超时;懒加载控件需先 scrollUntilVisible;旧 flutter_driver 测试需改用 driver.waitFor 等 API;Firebase Test Lab 需分别构建 debug APK 与测试 APK 后上传。具体收费与平台支持细节暂未提供。