首页 > 解决方案 > 一起运行时 Flutter 小部件测试失败

问题描述

我在一个文件中有两个相同的小部件测试,如下所示:

void main() {

  Widget testedWidget;

  setUpAll(() {
    GlobalConfiguration().loadFromMap(appSettings);
    getIt.registerSingleton<UserService>(UserService(), signalsReady: true);
    testedWidget = createWidgetForTesting(child: WebLoginScreen());
  });

  testWidgets("closeWidget", (WidgetTester tester) async {

    final width = 1920.0;
    final height = 1080.0;
    final dpi = tester.binding.window.devicePixelRatio;
    tester.binding.window.physicalSizeTestValue = Size(width * dpi, height * dpi);
    await tester.binding.setSurfaceSize(Size(width, height));

    await tester.pumpWidget(testedWidget);
    await tester.pumpAndSettle();

    final iconFinder = find.byType(CloseLoginPage);

    expect(iconFinder, findsOneWidget);

    await tester.idle();
  });

  testWidgets("closeWidget2", (WidgetTester tester) async {

    final width = 1920.0;
    final height = 1080.0;
    final dpi = tester.binding.window.devicePixelRatio;
    tester.binding.window.physicalSizeTestValue = Size(width * dpi, height * dpi);
    await tester.binding.setSurfaceSize(Size(width, height));

    await tester.pumpWidget(testedWidget);
    await tester.pumpAndSettle();

    final iconFinder = find.byType(CloseLoginPage);

    expect(iconFinder, findsOneWidget);

    await tester.idle();
  });

}

当我开始与 Intellij 分开的每个测试时,每个测试都通过了。但是当我从控制台(颤振测试路径/to/test.dart)开始测试时,第二次测试失败了。

颤振细节:

[✓] Flutter (Channel stable, 2.0.2, on Linux, locale cs_CZ.UTF-8)
    • Flutter version 2.0.2 at /home/user/fluter2/dev/flutter
    • Framework revision 8962f6dc68 (3 weeks ago), 2021-03-11 13:22:20 -0800
    • Engine revision 5d8bf811b3
    • Dart version 2.12.1

标签: androidflutterflutter-test

解决方案


推荐阅读