You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter升级至3.16.9后golden tests因tester.waitForAssets()挂起

解决Flutter 3.16.9 + golden_toolkit 0.15.0中waitForAssets()导致测试挂起的问题

以下是几个可尝试的解决方案:

  • 手动指定需等待的资产
    默认tester.waitForAssets()会等待所有项目资产加载完成,但Flutter 3.16.x版本对资产加载的处理逻辑有调整,可能导致部分未使用的资产触发无限等待。可以明确传入测试中实际用到的资产路径,缩小等待范围:
await tester.waitForAssets(const ['assets/icons/test_icon.svg', 'assets/images/bg.png']);
  • 关闭multiScreenGolden的自动资产等待
    golden_toolkit的multiScreenGoldenMatcher默认会自动调用waitForAssets(),可以通过配置参数关闭这个行为,改为手动预加载所需资产:
await tester.multiScreenGoldenMatcher(
  'home_screen_golden',
  waitForAssets: false,
);
// 手动预加载测试用到的资产
await precacheImage(AssetImage('assets/images/bg.png'), tester.context);
  • 检查资产配置与清理缓存

  • 核对pubspec.yaml中的资产路径,确保路径大小写、层级与实际文件一致(Flutter 3.16对路径解析更严格,跨平台环境下大小写不匹配会导致加载失败)。

  • 清理测试缓存,执行以下命令重置环境:

    flutter clean
    flutter pub get
    flutter test --update-goldens
    
  • 临时降级golden_toolkit版本
    若上述方法无效,可尝试将golden_toolkit降级到0.14.0版本,该版本与Flutter 3.16.x的兼容性经过更多验证:

dev_dependencies:
  golden_toolkit: ^0.14.0

内容的提问来源于stack exchange,提问作者Roc Boronat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 00:20:59