【问题标题】:Flutter Integration Testing- How to run multiple test cases of Flutter integration tests in single command or from single fileFlutter 集成测试 - 如何在单个命令或单个文件中运行多个 Flutter 集成测试的测试用例
【发布时间】:2020-03-18 04:47:14
【问题描述】:

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

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

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

提前致谢。

【问题讨论】:

  • 你试过从主函数调用不同的组吗?
  • 是的,我试过了,但没有成功。
  • 虽然我还没有玩过 ozzie,但这听起来像是报告生成器的问题。您是否尝试从我们传递具有多个测试用例的测试文件的终端运行默认命令?目前无法在一个命令中运行多个文件的测试,但您可以直接在终端中提供相应的测试文件名,flutter driver 将依次执行。例如:flutter drive — target=test_driver/app.dart — driver=test_driver/app_test.dartflutter drive — target=test_driver/app.dart — driver=test_driver/home_test.dart
  • 感谢@Darshan 提供信息。我尝试了同样的方法,它适用于测试,但由于仅为最后一个命令生成了 ozzie 报告。
  • 这可能是 ozzie 报告工具的问题。您可能会针对它打开一个错误。作为一种解决方法,如果它适用于您的设置,请尝试直接从终端执行测试。

标签: android flutter dart ui-automation flutter-test


【解决方案1】:

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

假设你有 3 个测试文件,

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

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

main(){
  loginTest();

}
Future<void> loginTest()async{

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

//Write your test-cases here

}

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

testAll.dart & testAll_test.dart

以这些格式写在 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();


  });
}

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

flutter drive --target=test_driver/testAll.dart

【讨论】:

    猜你喜欢
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    相关资源
    最近更新 更多