FlutterDriver: расширение драйвера Flutter занимает много времени, чтобы стать доступным - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь запустить интеграционные тесты флаттера, следуя инструкциям на веб-странице: https://flutter.dev/docs/cookbook/testing/integration/introduction, но при попытке выполнить с помощью устройства iOS всегда происходит сбой с таймаутом флаттер-драйвера, но если я выполняютот же кусок кода с помощью устройства Android, он работает успешно.

Выполненная команда:

flutter driver --target=test_driver/app.dart

и (только в iOS) отображается следующая ошибка:

...
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, но, ПОЧЕМУ?

Что я имею в виду для следующих инструкций веб-страницы, использует 2 файла для теста: test_driver /app.dart и test_driver / app_test.dart

test_driver / app.dart

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

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 , это можно исправить введением метода enableFlutterDriverExtension () внутри main.dart, но я бы не стал писать ничего лишнего внутри кода приложения.

Есть ли возможность исправить это с помощью другогоподход?

Спасибо

...