You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:15:03