gpt4 book ai didi

integration-testing - 新的integration_test软件包仅显示 "Test starting..."[Android]

转载 作者:行者123 更新时间:2023-12-03 17:22:59 36 4
gpt4 key购买 nike

我试图将旧的flutter驱动程序测试迁移到新的integration_test package
我几乎复制了example project中的所有内容,并在本地执行了示例项目的集成测试。一切正常,我能够看到应用程序的用户界面。
但是,我自己的应用程序在显示初始屏幕后仅以紫色显示“测试开始...”。

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而不是集成测试。
我的猜测是,这是由于我的主要功能是异步功能。
在旧的flutter驱动程序测试中,我还需要 this workaround等待第一帧。
但是我无法弄清楚如何使用新的integration_test包实现该功能。
希望您能够帮助我。

最佳答案

嗯我在假期开始转换flutter_driver测试,然后遇到了同样的情况。
我的解决方法是在启动测试后添加固定的 sleep ,这可以使其正确初始化。因此,一个测试用例如下所示:

    testWidgets("Main screen loads", (WidgetTester widgetTester) async {
app.main();
await sleep(Duration(seconds: 10));
await widgetTester.pumpAndSettle();

expect(find.text("What are you looking for?"), findsOneWidget);
});

关于integration-testing - 新的integration_test软件包仅显示 "Test starting..."[Android],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65412897/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com