gpt4 book ai didi

flutter - 允许在 flutter 新集成测试中运行整个测试文件夹 - 就像普通的单元测试一样

转载 作者:行者123 更新时间:2023-12-02 18:51:19 26 4
gpt4 key购买 nike

我有一个单独的 integration test file for each screen我想用一个命令(如“fluttertests”)运行所有集成测试。我查看了文档,但找不到任何方法来做到这一点。这也会导致 firebase 测试实验室 apk 出现问题。要创建 Android 测试 apk,我只能指定单个测试文件路径来创建 apk。

// flutter build generates files in android/ for building the app
flutter build apk
./gradlew app:assembleAndroidTest
./gradlew app:assembleDebug -Ptarget=integration_test/whattodo_tests.dart

目前,我找到了两种解决方法。

  1. 我已将所有测试移至一个带有 group test 的 dart 文件中。但这种解决方法不能很好地扩展。对于 5-10 测试,它运行良好。但是假设我们有 50-75 个测试,那么在单个文件中导航和理解测试将会很困惑。
  2. 创建 script一项一项地运行所有测试。这可能适用于我们自己的 CI 管道,但不适用于 firebase 测试实验室。

有谁能够解决这个问题或有更好的解决方案吗?

最佳答案

我在 GitHub 上发现了一个具有这种结构的项目,我认为这可能会有所帮助..

制作通用文件并在该通用文件上导入不同的文件、文件夹或模块进行测试

main.dart

import 'package:integration_test/integration_test.dart';
import 'about_us_page_test.dart' as about;
import 'add_label_page_test.dart' as label;
import 'add_project_page_test.dart' as project;
import 'add_task_page_test.dart' as tasks;
import 'completed_tasks_page_test.dart' as tasks_completed;
import 'home_page_test.dart' as home;
import 'whattodo_tests.dart' as whattodo;

void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
whattodo.main();
home.main();
tasks.main();
tasks_completed.main();
project.main();
label.main();
about.main();
}

运行所有这些测试

flutter drive \
--driver=test_driver/integration_test_driver.dart \
--target=integration_test/main.dart

关于flutter - 允许在 flutter 新集成测试中运行整个测试文件夹 - 就像普通的单元测试一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66728138/

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