从flutter_driver迁移到integration_test如何实现免重复构建APK调试测试
integration_test 免重复构建APK调试方案
你完全可以沿用旧版flutter_driver的调试逻辑,只需调整VSCode的launch配置即可实现应用常驻、测试快速运行:
步骤1:配置launch.json
替换或新增如下两组配置:
{ "version": "0.2.0", "configurations": [ // 第一组:启动常驻的测试宿主应用,仅需运行一次 { "name": "Integration Tests: 启动测试宿主", "request": "launch", "type": "dart", "program": "lib/main.dart", // 也可以用你之前的test_driver/app.dart入口 "args": [ "--flavor", "dev", "--debug" // 显式开启debug模式保留VM服务 ] }, // 第二组:Attach到已启动的应用运行测试,修改测试后仅需重新运行本配置即可 { "name": "Integration Tests: Attach运行测试", "request": "launch", "type": "dart", "program": "integration_test/你要运行的测试用例.dart", // 每次换测试改这里就行 "args": [ "-d", "flutter-tester", "--use-application-binary", "build/app/outputs/flutter-apk/app-dev-debug.apk", // 对应你flavor构建出来的APK路径 "--vm-service-url", "ws://127.0.0.1:xxxx/xxxx=/ws" // 每次启动宿主后从控制台复制地址粘贴到这里 ] } ] }
步骤2:沿用原有工作流即可
- 首次开发时先运行
Integration Tests: 启动测试宿主配置,等待应用安装启动完成,从VSCode调试控制台复制VM Service地址,粘贴到第二组配置的--vm-service-url对应位置 - 后续修改测试用例后,仅需运行
Integration Tests: Attach运行测试配置,无需重新构建APK,数秒即可完成测试执行,同时支持断点调试测试逻辑
注意事项
- 测试代码中不要调用
appDoctor.restartApp()之类的重启应用API,否则会断开VM连接需要重新复制地址 - 如果修改了应用本身的业务代码,需要重新运行启动宿主的配置更新应用版本,只改测试代码不需要重启宿主
内容的提问来源于stack exchange,提问作者Tomás Wonderfurt
相关产品推荐
相关产品推荐

