diff --git a/packages/flutter_tools/lib/src/commands/drive.dart b/packages/flutter_tools/lib/src/commands/drive.dart index 52fcd654aa..9fb1750a0d 100644 --- a/packages/flutter_tools/lib/src/commands/drive.dart +++ b/packages/flutter_tools/lib/src/commands/drive.dart @@ -216,7 +216,11 @@ class DriveCommand extends RunCommandBase { @override final String description = - 'Run integration tests for the project on an attached device or emulator.'; + 'Builds and installs the app, and runs a Dart program that connects to ' + 'the app, often to run externally facing integration tests, such as with ' + 'package:test and package:flutter_driver.\n' + '\n' + 'Usage: flutter drive --target --driver .'; @override String get category => FlutterCommandCategory.project; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/drive_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/drive_test.dart index b5dd43c6ad..1773baef3e 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/drive_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/drive_test.dart @@ -588,6 +588,32 @@ void main() { DeviceManager: () => fakeDeviceManager, }, ); + + testUsingContext('flutter drive --help explains how to use the command', () async { + final DriveCommand command = DriveCommand( + fileSystem: fileSystem, + logger: logger, + platform: platform, + signals: signals, + ); + + // TODO(matanlurey): https://github.com/flutter/flutter/issues/158532. + final StringBuffer printOutput = StringBuffer(); + final Zone capturePrintZone = Zone.current.fork( + specification: ZoneSpecification( + print: (_, _, _, String line) { + printOutput.writeln(line); + }, + ), + ); + await capturePrintZone.run(() async { + await createTestCommandRunner(command).run(['drive', '--help']); + }); + expect( + printOutput.toString(), + stringContainsInOrder(['flutter drive', '--target', '--driver']), + ); + }); } class ThrowingScreenshotDevice extends ScreenshotDevice {