首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FlutterDriver: Flutter驱动程序扩展需要很长时间才能可用

FlutterDriver: Flutter驱动程序扩展需要很长时间才能可用
EN

Stack Overflow用户
提问于 2019-06-07 14:32:51
回答 1查看 4K关注 0票数 5

我正在尝试按照网页上提供的指令运行flutter集成测试:https://flutter.dev/docs/cookbook/testing/integration/introduction,但当尝试使用iOS设备执行时,它总是失败并出现flutterdriver超时,但如果我使用安卓设备执行相同的代码,它会运行成功。

执行的命令是:

代码语言:javascript
复制
flutter driver --target=test_driver/app.dart

和(仅在iOS中),显示的错误如下:

代码语言:javascript
复制
...
flutter: Observatory listening on http://127.0.0.1:49605/Jh_J7boSKBk=/  
Installing and launching...                                        22.5s
[info ] FlutterDriver: Connecting to Flutter application at http://127.0.0.1:1043/Jh_J7boSKBk=/
[trace] FlutterDriver: Isolate found with number: 589047572
[trace] FlutterDriver: Isolate is paused at start.
[trace] FlutterDriver: Attempting to resume isolate
[trace] FlutterDriver: Waiting for service extension
flutter: main dev
[warning] FlutterDriver: Flutter Driver extension is taking a long time to become available. Ensure your test app (often "lib/main.dart") imports "package:flutter_driver/driver_extension.dart" and calls enableFlutterDriverExtension() as the first call in main().

看起来,当它在iOS中执行时,它完全忽略了指定的目标,并试图直接运行lib/main.dart文件,但是,为什么呢?

以下网页说明的意思是使用两个文件进行测试: test_driver/app.dart和test_driver/app_test.dart

test_driver/app.dart

代码语言:javascript
复制
import 'package:flutter_driver/driver_extension.dart';
import 'package:my_app/main.dart' as app;

void main() async {
  // This line enables the extension
  await enableFlutterDriverExtension();

  // Call the `main()` function of your app or call `runApp` with any widget you
  // are interested in testing.
  await app.main();
}

test_driver/app_test.dart

代码语言:javascript
复制
import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart';

void main() {
  group('end-to-end test', () {
    FlutterDriver driver;

    setUpAll(() async {
      // Connect to a running Flutter application instance.
      driver = await FlutterDriver.connect();
    });

    tearDownAll(() async {
      if (driver != null)
        driver.close();
    });

    test('whatever', () async {
       //whatever
    });
  });
}

正如这里所评论的:#17184,在main.dart中引入enableFlutterDriverExtension()可以修复它,但我不希望在应用程序代码中编写任何额外的东西。

有没有可能使用另一种方法来修复它?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-01-15 02:52:15

我遵循了docs for writing integration tests上的步骤,它在Flutter稳定(1.22.5版)和master(1.26.0-2.0.pre.281版)通道上都工作得很好。虽然docs中的命令演示了flutter drive的用法,但在我的测试中,使用flutter driver似乎也运行得很好。

抛开这个问题不谈,即使我不能在本地复制这个问题,这个问题似乎已经通过遵循GitHub issue thread中提到的解决方法来解决了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56489067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档