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



我为每个屏幕都有一个单独的集成测试文件,我想用一个命令(如"flutter tests"(运行所有集成测试。我看了医生,但没能找到任何方法。这也导致了一个问题的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. 我已经将所有测试移动到一个带有组测试的单个dart文件中。但这种变通方法的规模并不大。对于5-10测试,它运行良好。但假设我们有50-75的测试,那么在单个文件中导航和理解测试将是一团糟
  2. 创建一个脚本来逐个运行所有测试。这可能在我们自己的CI管道上起作用,但在火球测试实验室中不起作用

有人能解决这个问题或任何更好的解决方案吗?

我在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();
}

run all,这些测试

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

现在有更好的方法了。只需像这样使用test命令。

运行所有测试

flutter test integration_test

运行特定测试

flutter test integration_test/app_test.dart

参考。

相关内容

  • 没有找到相关文章

最新更新