8a71e75a46
One shortcoming is that `dart help test` doesn't follow the same rules. This is harder to address. Bug:https://github.com/dart-lang/sdk/issues/44369 Change-Id: Idb5b86251ebbe71ecb70292ee93d26b3d71263fa Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175060 Commit-Queue: Sigurd Meldgaard <sigurdm@google.com> Reviewed-by: Jonas Jensen <jonasfj@google.com>
73 lines
2.3 KiB
Dart
73 lines
2.3 KiB
Dart
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
import 'package:args/command_runner.dart';
|
|
import 'package:dartdev/dartdev.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
import '../utils.dart';
|
|
|
|
void main() {
|
|
group('help', help, timeout: longTimeout);
|
|
}
|
|
|
|
void help() {
|
|
TestProject p;
|
|
|
|
tearDown(() => p?.dispose());
|
|
|
|
/// Commands not tested by the following loop.
|
|
List<String> _commandsNotTested = <String>[
|
|
'help', // `dart help help` is redundant
|
|
'test', // `dart help test` does not call `test:test --help`.
|
|
];
|
|
DartdevRunner(['--no-analytics'])
|
|
.commands
|
|
.forEach((String commandKey, Command command) {
|
|
if (!_commandsNotTested.contains(commandKey)) {
|
|
test('(help $commandKey == $commandKey --help)', () {
|
|
p = project();
|
|
var result = p.runSync(['help', commandKey]);
|
|
var verbHelpResult = p.runSync([commandKey, '--help']);
|
|
|
|
expect(result.stdout, contains(verbHelpResult.stdout));
|
|
expect(result.stderr, contains(verbHelpResult.stderr));
|
|
});
|
|
}
|
|
});
|
|
|
|
test('(help test ~= test --help) outside project', () {
|
|
p = project();
|
|
p.deleteFile('pubspec.yaml');
|
|
var result = p.runSync(['help', 'test']);
|
|
var testHelpResult = p.runSync(['test', '--help']);
|
|
|
|
expect(testHelpResult.stdout, contains(result.stdout));
|
|
expect(testHelpResult.stderr, contains(result.stderr));
|
|
});
|
|
|
|
test('(help pub == pub --help)', () {
|
|
p = project();
|
|
var result = p.runSync(['help', 'pub']);
|
|
var pubHelpResult = p.runSync(['pub', '--help']);
|
|
|
|
expect(result.stdout, contains(pubHelpResult.stdout));
|
|
expect(result.stderr, contains(pubHelpResult.stderr));
|
|
});
|
|
|
|
test('(--help flags also have -h abbr)', () {
|
|
DartdevRunner(['--no-analytics'])
|
|
.commands
|
|
.forEach((String commandKey, Command command) {
|
|
var helpOption = command.argParser.options['help'];
|
|
// Some commands (like pub which use
|
|
// "argParser = ArgParser.allowAnything()") may not have the help Option
|
|
// accessible with the API used above:
|
|
if (helpOption != null) {
|
|
expect(helpOption.abbr, 'h', reason: '');
|
|
}
|
|
});
|
|
});
|
|
}
|