integrationDriver function Null safety
- {Duration timeout = const Duration(minutes: 20),
 - ResponseDataCallback? responseDataCallback = writeResponseData}
 
Adaptor to run an integration test using flutter drive.
To an integration test <test_name>.dart using flutter drive, put a file named
<test_name>_test.dart in the app's test_driver directory:
import 'dart:async';
import 'package:integration_test/integration_test_driver.dart';
Future<void> main() async => integrationDriver();
Parameters:
timeout controls the longest time waited before the test ends.
It is not necessarily the execution time for the test app: the test may
finish sooner than the timeout.
responseDataCallback is the handler for processing Response.data.
The default value is writeResponseData.
Implementation
Future<void> integrationDriver({
  Duration timeout = const Duration(minutes: 20),
  ResponseDataCallback? responseDataCallback = writeResponseData,
}) async {
  final FlutterDriver driver = await FlutterDriver.connect();
  final String jsonResult = await driver.requestData(null, timeout: timeout);
  final Response response = Response.fromJson(jsonResult);
  await driver.close();
  if (response.allTestsPassed) {
    print('All tests passed.');
    if (responseDataCallback != null) {
      await responseDataCallback(response.data);
    }
    exit(0);
  } else {
    print('Failure Details:\n${response.formattedFailureDetails}');
    exit(1);
  }
}