Тест-драйв Flutter и длительные процессы

Я использую тест-драйв флаттера, чтобы протестировать свое приложение флаттера.

Все работает нормально, за исключением того, что я долго жду элемент.

Например, у меня есть процесс входа в систему, который занимает много времени (до 60 секунд, если тестовый сервер занят). Я нажимаю кнопку входа в систему и жду, пока не появится главная страница:

await driver.tap(find.byValueKey("login_button"));
await driver.waitUntilNoTransientCallbacks();
await driver.waitFor(find.byValueKey("main_page"), timpout: Duration(seconds: 60));

Если я это сделаю, я получаю: Bad state: The client closed with pending request "ext.flutter.driver". при следующей попытке выполнить команду.

Если я имитирую процесс входа в систему так, что он занимает всего долю секунды, я не получаю эту ошибку.

Как я могу сказать флаттер-драйву, чтобы он немного терпеливее относился к тайм-ауту?


person Nathan    schedule 07.12.2019    source источник
comment
Можете ли вы попробовать обернуть свой код, чтобы дождаться main_page с runUnsynchronized? Предполагая, что вы показываете индикатор загрузки до завершения запроса, он будет ждать, пока не останется ожидающих кадров. Подробнее здесь: api.flutter.dev/flutter/flutter_driver/Flutter/Driver/ а>   -  person Darshan    schedule 10.12.2019


Ответы (1)


Для меня это сработало:

group('Your test', () { // your tests}, timeout: Timeout(Duration(seconds: 90)));
person 最白目    schedule 27.01.2020