diff --git a/README.md b/README.md index 34b54eb..9880dfe 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,9 @@ targets: # Allows the code generator to target files outside of the lib folder - integration_test/**.dart ``` -3. Add the following file (and folder) `\test_driver\integration_test_driver.dart`. This file is the entry point to run your tests. See `https://flutter.dev/docs/testing/integration-tests` for more information. +3. Add the following file (and folder) `\test_driver\integration_test_driver.dart`. This file is the entry point to run your tests. +If you want ot use the flutter test command approach, you will not need this file (and be unused when it is created). +See `https://flutter.dev/docs/testing/integration-tests` for more information. ```dart import 'package:integration_test/integration_test_driver.dart' as integration_test_driver; @@ -83,25 +85,25 @@ import 'package:example_with_integration_test/main.dart' as app; part 'gherkin_suite_test.g.dart'; -@GherkinTestSuite() -void main() { - executeTestSuite( - FlutterTestConfiguration.DEFAULT([]) - ..reporters = [ - StdoutReporter(MessageLevel.error) - ..setWriteLineFn(print) - ..setWriteFn(print), - ProgressReporter() - ..setWriteLineFn(print) - ..setWriteFn(print), - TestRunSummaryReporter() - ..setWriteLineFn(print) - ..setWriteFn(print), - JsonReporter( - writeReport: (_, __) => Future.value(), - ), - ], - (World world) => app.main(), +@GherkinTestSuite( + featurePaths: ['integration_test/features/**.feature'], + executionOrder: ExecutionOrder.sequential) +Future main() async { + if (Config().restoreDatabase) { + await MakeSnapshotCommand().action(null); + } + var configuration = FlutterTestConfiguration( + reporters: [ + TestRunSummaryReporter(), + JsonReporter( + writeReport: (_, __) => Future.value(), + ), + ], + ); + + await executeTestSuite( + configuration: configuration, + appMainFunction: (World world) async => app.main(), ); } ``` @@ -114,6 +116,14 @@ flutter pub run build_runner build ``` flutter drive --driver=test_driver/integration_test_driver.dart --target=integration_test/gherkin_suite_test.dart ``` + +If you do not want to use the flutter drive command, but the flutter test command you need to change some aspects. +It is REQUIRED that in `integration_test\gherkin_suite_test.dart` the executeTestSuite is awaited. +And then you can run your test command: +``` +flutter test integration_test/gherkin_suite_test.dart +``` + 10. You can debug the tests by adding a breakpoint to line 12 in `integration_test\gherkin_suite_test.dart` and adding the below to your `.vscode\launch.json` file: ```json {