[flutter_driver] Flutter統合テストでdriverアクションがフリーズしてしまう問題を解決する
CircularProgressIndicatorなどのループアニメーションを含むWidgetがUIにあると、driver.tap()
やdriver.screenshot()
などのdriverへのアクションはフリーズします。
これは、flutter_driverにはUIの更新が終わるまでUIへの操作を待機させるframe sync
という機構が備わっているからです。
例
test('test', () async => {
// UIにプログレスバーなどのループアニメーションがあると実行されない
// =>テストがタイムアウト
await driver.tap(find.byValueKey('key'));
});
解決方法
runUnsynchronized
でframe sync
を無効にすればUIの更新終了を待たずに実行することができます
test('test', () async {
await driver.runUnsynchronized(() async {
// UIが更新途中でも実行される
await driver.tap(find.byValueKey('key'));
});
});
Author And Source
この問題について([flutter_driver] Flutter統合テストでdriverアクションがフリーズしてしまう問題を解決する), 我々は、より多くの情報をここで見つけました https://qiita.com/HiroyukiTamura/items/d04d25c94a29a64f3cf3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .