如何解决在运行Flutter集成测试时出现“Not found: 'dart:ui'”错误

55

我有一个应用程序,它非常简单,只有一个小部件。它目前运行良好,但是当我通过调用以下命令运行集成测试时:

$ flutter drive --target=test_driver/app.dart 

我收到以下错误:

 file:///Users/myuser/flutter/packages/flutter_test/lib/src/accessibility.dart:8:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui;
       ^
file:///Users/myuser/flutter/packages/flutter_test/lib/src/binding.dart:8:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui;
       ^
file:///Users/myuser/flutter/packages/flutter_test/lib/src/matchers.dart:8:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui;
       ^
file:///Users/myuser/flutter/packages/flutter_test/lib/src/matchers.dart:9:8: Error: Not found: 'dart:ui'
import 'dart:ui';
       ^
file:///Users/myuser/flutter/packages/flutter_test/lib/src/test_pointer.dart:12:1: Error: Not found: 'dart:ui'
export 'dart:ui' show Offset;
^
file:///Users/myuser/flutter/packages/flutter/lib/src/rendering/binding.dart:8:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui show window;
       ^
file:///Users/myuser/flutter/packages/flutter/lib/src/rendering/box.dart:6:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui show lerpDouble;
       ^
file:///Users/myuser/flutter/packages/flutter/lib/src/rendering/debug_overflow_indicator.dart:6:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui;
       ^
file:///Users/myuser/flutter/packages/flutter/lib/src/rendering/editable.dart:8:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui show TextBox;
       ^
file:///Users/myuser/flutter/packages/flutter/lib/src/rendering/error.dart:5:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui show Paragraph, ParagraphBuilder, ParagraphConstraints, ParagraphStyle, TextStyle;
       ^
Stopping application instance.
Driver tests failed: 254

请注意,当我从Android Studio运行应用时,它可以成功运行。但是,当我使用上述命令从终端运行时,应用程序会显示一个白屏,并且在终端上出现错误之前不会有任何变化。

假设这是路径问题,例如test_driver找不到flutter包,例如dart:ui,那么我该如何确保test_driver知道dart:ui在哪里?


1
Flutter驱动测试由两部分组成。一部分是在模拟器/设备中运行的代码,另一部分是驱动前一部分代码的代码。后一部分的代码不能直接或间接地导入dart:ui - Günter Zöchbauer
1
请确保您的导入语句如下: import 'package:flutter_driver/flutter_driver.dart';import 'package:test/test.dart'; - AbdulMomen عبدالمؤمن
嗨@RobertoAllende,你的问题有什么更新了吗?如果你已经找到解决方案,请写下答案,因为我认为我也遇到了类似的问题。谢谢。 - MNFS
对我来说,答案就是我已经发布的那个。我只是将其标记为答案,因为那是解决我的问题的答案。 - RobertoAllende
12个回答

0

确保将文件夹命名为 integration_test ,否则它将无法工作,在我的情况下它被命名为 test_integration ,我将其改为 integration_test ,然后它就可以工作了。


0

这是因为应用程序是在虚拟环境中运行,因此无法导入UI。

按照此处指定的设置项目:

lib/
  ...
integration_test/
  foo_test.dart
  bar_test.dart
test/
  # Other unit tests go here.
test_driver/
  integration_test.dart

并运行精确命令:

flutter drive \
  --driver=test_driver/integration_test.dart \
  --target=integration_test/foo_test.dart

请参考官方库的文档(上面是其精确副本)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接