Разрешить запускать всю папку тестов в новых интеграционных тестах flutter - как в обычных модульных тестах
У меня есть отдельный файл интеграционных тестов для каждого экрана, и я хочу запустить все интеграционные тесты с помощью одной команды, например «флаттер-тесты». Я просмотрел документ, но не смог найти способ сделать это. Это также вызывает проблему с apk лаборатории тестирования firebase. Чтобы создать тестовый apk для Android, я могу указать только один путь к тестовому файлу для создания 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
На данный момент я нашел два обходных пути для этого.
- Я переместил все свои тесты в один файл дротика с групповым тестом . Но это обходное решение плохо масштабируется. На 5-10 тест работает нормально. Но допустим, если у нас есть 50-75 тестов, тогда будет сложно ориентироваться и понимать тесты в одном файле.
- Создайте сценарий для запуска всех тестов один за другим. Это может работать в нашем собственном конвейере CI, но не будет работать в лаборатории тестирования firebase.
Кто-нибудь может решить эту проблему или какое-либо лучшее решение?
2 ответа
Я наткнулся на один проект на 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
Теперь есть лучший способ сделать это. Просто используйте тестовую команду вот так.
Чтобы запустить весь тест
flutter test integration_test
Чтобы запустить конкретный тест
flutter test integration_test/app_test.dart
Ссылка .