有没有办法让动画不停止 Flutter 驱动程序?

Is there a way to make Animations not Halt Flutter driver?

FlutterDriver from flutter_driver暂停 所有动作,直到不再播放动画为止。

我的 UI 涉及循环动画,我想在播放此类动画时点击我的集成测试中的某些内容。
一旦我进入一个有循环动画的屏幕,除非有点击输入,否则它不会停止,FlutterDriver 将简单地 超时 因为它等待动画完成(这因此在我的集成测试中永远不会发生)。

基本上,所有像 driver.tap will by default wait for all animations (at least created by an AnimationController) 这样的操作都在执行之前。

test('stop looping animation', () async {
  // Navigated to a screen with a looping animation before that.
  await driver.tap(find.byValueKey('stop_looping_animation')); // FlutterDriver will time out here.
});

您可以使用 FlutterDriver.runUnsynchronized:

test('stop looping animation', () async {
  await driver.runUnsynchronized(() async {
    await driver.tap(find.byValueKey('stop_looping_animation'));
  });
});

遇到了类似的问题,这条评论有帮助:https://github.com/flutter/flutter/issues/34503#issuecomment-503545683