How to pass environment variable to flutter driver test

I want to pass an environment variable to the flutter drive tag.

The ability to read the value in the running application or the test code will be great, because I need it in the application, and if I could get it only in the test code, I could pass it to the application using driver.requestData()

For example, Travis allows me to specify environment variables that are not displayed in any way (for example, script content and log output).

I want to specify a username and password so that they can be used inside the application.

Setting environment variables in Flutter is a similar question, but it is too complicated for my use case.

+8
dart flutter
source share
1 answer

I tried using Dart Platform.environment to read in env variables before running driver tests, and it seems to work fine. The following is a simple example that sets the output directory for test summaries using the FLUTTER_DRIVER_RESULTS env variable.

 import 'dart:async'; import 'dart:io' show Platform; import 'package:flutter_driver/flutter_driver.dart'; import 'package:test/test.dart'; void main() { // Load environmental variables String resultsDirectory = Platform.environment['FLUTTER_DRIVER_RESULTS'] ?? '/tmp'; print('Results directory is $resultsDirectory'); group('increment button test', () { FlutterDriver driver; setUpAll(() async { // Connect to the app driver = await FlutterDriver.connect(); }); tearDownAll(() async { if (driver != null) { // Disconnect from the app driver.close(); } }); test('measure', () async { // Record the performance timeline of things that happen Timeline timeline = await driver.traceAction(() async { // Find the scrollable user list SerializableFinder incrementButton = find.byValueKey( 'increment_button'); // Click the button 10 times for (int i = 0; i < 10; i++) { await driver.tap(incrementButton); // Emulate time for a user finger between taps await new Future<Null>.delayed(new Duration(milliseconds: 250)); } }); TimelineSummary summary = new TimelineSummary.summarize(timeline); summary.writeSummaryToFile('increment_perf', destinationDirectory: resultsDirectory, pretty: true); summary.writeTimelineToFile('increment_perf', destinationDirectory: resultsDirectory, pretty: true); }); }); } 
+2
source share

All Articles