我尝试将旧的颤振驱动程序测试迁移到新的integration_test 包。我从示例项目中复制了几乎所有内容,并在本地执行了示例项目的集成测试。这按预期工作,我能够看到应用程序 UI。但是我自己的应用程序在显示初始屏幕后仅以紫色显示“测试开始...”。
example_test.dart:
void main() {
group('My-App', () {
final binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized() as IntegrationTestWidgetsFlutterBinding;
testWidgets('Tap on SkipAuthentication', (tester) async {
app.main();
await binding.traceAction(() async {
await tester.pumpAndSettle();
await Future.delayed(Duration(seconds: 5));
final fab = find.byKey(ValueKey(WidgetKeys.authenticationScreenKeys.skipAuthenticationButton));
await tester.tap(fab);
await tester.pumpAndSettle();
});
});
integration_driver.dart:
Future<void> main() async {
integrationDriver();
}
我发现,如果我不启动 tester.pumpWidget() 会显示 Widget,我会传递给该方法,但那是 WidgetTest 而不是集成测试。
我的猜测是,这是因为我的 main 函数是一个异步函数。在我的旧颤振驱动程序测试中,我还需要这种解决方法来等待第一帧。但我不知道如何使用新的 integration_test 包来实现它。
希望您能够帮助我。