0

我的应用程序是基本计数器,带有用于 UI 自动化的 FlutterDriver。我的难题是当我尝试运行测试时,它告诉我需要指定连接或设置 VM_SERVICE_URL

错误:

DriverError:无法确定连接到应用程序的 URL。应该设置 VM_SERVICE_URL 环境变量,或者应该为 FlutterDriver.connect() 方法提供显式 URL。

我已经尝试了几件事。

  • 使用 FlutterDriver.connect();
  • 在终端 (MacOS) 中设置 VM_SERVICE_URL
  • 设置 Dart 命令行以包含带有值的 VM_SERVICE_URL

我取得的最大成功是使用下面的代码。通过将 enableFlutterDriverExtension 添加到 lib/main.dart,然后执行 lib/main.dart,我可以将 ws://127.0.0.1 连接复制/粘贴到 test/my_test.dart 中。这使我能够成功运行我的测试,但这不是一个理想的过程。

有没有办法自动拉入连接字符串?

为什么 Platform.environment['VM_SERVICE_URL'] 尽管我设置了它,但总是返回 null?

lib/main.dart

void main() {

  enableFlutterDriverExtension();
  runApp(const MyApp());
}

测试/main_app.dart

void main() {
//  enableFlutterDriverExtension();
  MainApp.main();
  MyTest.main();

}

测试/my_test.dart

void main() {

  FlutterDriver? driver;

  dynamic DartVmServiceUrl;
  DartVmServiceUrl ??= Platform.environment['VM_SERVICE_URL'];
  print('VM_SERVICE_URL:\t${DartVmServiceUrl}');
  String vmServURL = 'ws://127.0.0.1:59488/WK8KTNVXXOo=/ws';

  setUpAll( () async {
    driver = await FlutterDriver.connect(dartVmServiceUrl: vmServURL);
  });

  tearDownAll( () {
    driver?.close();
  });

  test('Push Button',() async {
    var pushMeButton = find.byValueKey('IncrementButton');
    await driver!.tap(pushMeButton);

  }  );


}
4

0 回答 0