Я попытался перенести свои старые тесты драйвера флаттера в новый пакет integration_test. Я скопировал почти все из пример проекта и выполнил интеграционные тесты. примера проекта локально. Это сработало, как и ожидалось, я смог увидеть пользовательский интерфейс приложения. Но мое собственное приложение просто показывает запуск теста ... фиолетовым цветом после отображения экрана-заставки.
example_test.dart:
void main() {
group('My-App', () {
final binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized() as IntegrationTestWidgetsFlutterBinding;
testWidgets('Tap on SkipAuthentication', (tester) async {
app.main();
await binding.traceAction(() async {
await tester.pumpAndSettle();
await Future.delayed(Duration(seconds: 5));
final fab = find.byKey(ValueKey(WidgetKeys.authenticationScreenKeys.skipAuthenticationButton));
await tester.tap(fab);
await tester.pumpAndSettle();
});
});
integration_driver.dart:
Future<void> main() async {
integrationDriver();
}
Я понял, что если я не запустил tester. PumpWidget () покажет виджет, который я передаю методу, но это WidgetTest, а не тест интеграции.
Я предполагаю, что это связано с тем, что моя основная функция является асинхронной. Мне также нужен был этот обходной путь в моих старых тестах драйвера флаттера, чтобы дождаться первого Рамка. Но я не мог понять, как это реализовать с помощью нового пакета integration_test.
Надеюсь, ты сможешь мне помочь.