anchor.diff:  
     tearDown(() => p?.dispose());
   
  -  test('pub', () {
  +  /// Commands not tested by the following loop.
  +  List<String> _commandsNotTested = <String>[
  +    'help', // `dart help help` is redundant
  +    'test' // TODO(jwren) not yet implemented, dartbug.com/41041
  +  ];
  +  DartdevRunner([]).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 pub == pub help)', () {
       p = project();
       var result = p.runSync('help', ['pub']);
   
  
positive.code:     expect(result.stdout, contains(pubHelpResult.stdout));
      expect(result.stderr, contains(pubHelpResult.stderr));
    });
  }
  
negative.code: // 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';
  