Flutter 集成测试 - 如何在单个命令或单个文件中运行 Flutter 集成测试的多个测试用例

Vit*_*ade 4 android ui-automation dart flutter flutter-test

如何在单个命令或单个文件中运行 Flutter 集成测试的多个测试用例。1. 如果我为两个文件运行两个单独的命令,则报告只为最后一个命令生成。2.当我尝试在单个文件中进行单独的组时,应用程序停留在同一页面上不会重新启动。

在这里,我需要重新启动应用程序以进行进一步处理。有没有办法组合多个测试用例从多个文件运行。?

需要考虑的事情:我使用 ozzie 作为报告生成器。

提前致谢。

小智 5

您可能会尝试从一个文件运行所有测试用例。它可能会有所帮助,尽管重播较晚。

假设您有 3 个测试文件,即

  1. login.dart 和 login_test.dart(所有测试用例都必须在其中编写login_test.dart
  2. register.dart 和 register_test.dart
  3. forgotPassword.dart 和 forgotPassword_test.dart

将所有这些测试用例放入一个主函数中。(仅描述一个测试文件代码[login_test.dart]

main(){
  loginTest();

}
Future<void> loginTest()async{

  group('Login Page Automation Test :', () {

//Write your test-cases here

}
Run Code Online (Sandbox Code Playgroud)

因此,现在创建一个测试文件并调用该文件上的所有主要函数,这些函数将用于一次运行所有案例。

testAll.dart & testAll_test.dart
Run Code Online (Sandbox Code Playgroud)

在 testAll_test.dart 上以这些格式写入

import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart';


import 'login_test.dart';
import 'register_test.dart';
import 'forgotPassword_test.dart';



main() {
  testAll();
}

Future<void> testAll() async {
  group('All TestCase at Once: ', () {

    //code here

    FlutterDriver driver;
    // Connect to the Flutter driver before running any tests.
    setUpAll(() async {
      driver = await FlutterDriver.connect();
    });

    // Close the connection to the driver after the tests have completed.
    tearDownAll(() async {
      if (driver != null) {
        driver.close();
      }
    });

    //main methods below

    forgotPasswordTest();

    registerTest();

    loginTest();


  });
}
Run Code Online (Sandbox Code Playgroud)

最后使用它运行应用程序。

flutter drive --target=test_driver/testAll.dart
Run Code Online (Sandbox Code Playgroud)