【问题标题】:Run mutliple integration tests in Flutter在 Flutter 中运行多个集成测试
【发布时间】:2021-11-06 16:30:58
【问题描述】:

我有两个集成测试文件:login_test.dart 和 homepage_test.dart(每个都包括带有 1 个 testWidgets 方法的单个测试用例)

我正在使用命令行来运行这两个测试:

flutter test integration_test/

但问题是当测试运行并通过 login_test 时。它完全重新安装了我的应用程序,因此第二次测试将失败,因为没有登录凭据(卡在登录屏幕 -> 失败)

知道如何解决这个问题吗?

感谢您的帮助。

login_test.dart


void main() {
  IntegrationTestWidgetsFlutterBinding.ensureInitialized();

  group('end to end tests', () {
    testWidgets('test login', (WidgetTester tester) async {
      app.main();

      await tester.pumpAndSettle();

      final Finder textFieldFinder = find.byType(TextFormField);
      expect(textFieldFinder, findsNWidgets(2));
      final userName = textFieldFinder.first;
      final password = textFieldFinder.last;

      await tester.enterText(userName, 'myusername');
      await tester.enterText(password, 'mypassword');

      expect(find.text('Login'), findsOneWidget);

      await tester.tap(find.text('Login'));

      await tester.pumpAndSettle();

      expect(find.byKey(Key('createTicketBtn')), findsOneWidget);
    });
  });
}

homepage_test.dart

void main() {
  IntegrationTestWidgetsFlutterBinding.ensureInitialized();

  group('end to end tests', () {
    testWidgets('test homepage', (tester) async {
      app.main();

      await tester.pumpAndSettle();
      expect(find.byKey(Key('createTicketBtn')), findsOneWidget);
    });
  });
}

【问题讨论】:

    标签: flutter testing flutter-test


    【解决方案1】:

    您可以使用this 包扫描integration_test 目录中的文件夹以查找名为*_test.dart 的文件。这将生成一个包含所有测试文件的新主文件,因此您可以运行这个新生成的文件。

    您也可以像这样手动创建一个文件并启动它:

    import homepage_test.dart as homepage;
    import login_test.dart as login;
    
    void main() {
      homepage.main();
      login.main();
    }
    

    无论如何,每次测试都会从头开始,因此您每次都需要登录。除非您在 tearDown 中重置其状态,否则该应用不会丢失其数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-18
      • 2018-12-31
      • 2022-11-06
      • 2019-10-12
      • 2020-07-12
      • 2019-10-07
      • 1970-01-01
      • 2021-09-18
      相关资源
      最近更新 更多