$ tool/test-bin/pub_command_runner.dart 
[E] Could not find a command named "".
[E] 
[E] Usage: pub_command_runner <command> [arguments]
[E] 
[E] Global options:
[E] -h, --help    Print this usage information.
[E] 
[E] Available commands:
[E]   pub   Work with packages.
[E] 
[E] Run "pub_command_runner help <command>" for more information about a command.

$ tool/test-bin/pub_command_runner.dart --help
Tests the embeddable pub command.

Usage: pub_command_runner <command> [arguments]

Global options:
-h, --help    Print this usage information.

Available commands:
  pub   Work with packages.

Run "pub_command_runner help <command>" for more information about a command.

$ tool/test-bin/pub_command_runner.dart pub
[E] Missing subcommand for "pub_command_runner pub".
[E] 
[E] Usage: pub_command_runner pub [arguments...]
[E] -h, --help               Print this usage information.
[E]     --[no-]trace         Print debugging information when an error occurs.
[E] -v, --verbose            Shortcut for "--verbosity=all".
[E] -C, --directory=<dir>    Run the subcommand in the directory<dir>.
[E]                          (defaults to ".")
[E] 
[E] Available subcommands:
[E]   add         Add a dependency to pubspec.yaml.
[E]   cache       Work with the system cache.
[E]   deps        Print package dependencies.
[E]   downgrade   Downgrade the current package's dependencies to oldest versions.
[E]   get         Get the current package's dependencies.
[E]   global      Work with global packages.
[E]   login       Log into pub.dev.
[E]   logout      Log out of pub.dev.
[E]   outdated    Analyze your dependencies to find which ones can be upgraded.
[E]   publish     Publish the current package to pub.dartlang.org.
[E]   remove      Removes a dependency from the current package.
[E]   token       Manage authentication tokens for hosted pub repositories.
[E]   upgrade     Upgrade the current package's dependencies to latest versions.
[E]   uploader    Manage uploaders for a package on pub.dartlang.org.
[E] 
[E] Run "pub_command_runner help" to see global options.
[E] See https://dart.dev/tools/pub/cmd/pub-global for detailed documentation.

$ tool/test-bin/pub_command_runner.dart pub --help
Work with packages.

Usage: pub_command_runner pub [arguments...]
-h, --help               Print this usage information.
    --[no-]trace         Print debugging information when an error occurs.
-v, --verbose            Shortcut for "--verbosity=all".
-C, --directory=<dir>    Run the subcommand in the directory<dir>.
                         (defaults to ".")

Available subcommands:
  add         Add a dependency to pubspec.yaml.
  cache       Work with the system cache.
  deps        Print package dependencies.
  downgrade   Downgrade the current package's dependencies to oldest versions.
  get         Get the current package's dependencies.
  global      Work with global packages.
  login       Log into pub.dev.
  logout      Log out of pub.dev.
  outdated    Analyze your dependencies to find which ones can be upgraded.
  publish     Publish the current package to pub.dartlang.org.
  remove      Removes a dependency from the current package.
  token       Manage authentication tokens for hosted pub repositories.
  upgrade     Upgrade the current package's dependencies to latest versions.
  uploader    Manage uploaders for a package on pub.dartlang.org.

Run "pub_command_runner help" to see global options.
See https://dart.dev/tools/pub/cmd/pub-global for detailed documentation.

$ tool/test-bin/pub_command_runner.dart pub get --help
Get the current package's dependencies.

Usage: pub_command_runner pub get <subcommand> [arguments...]
-h, --help               Print this usage information.
    --[no-]offline       Use cached packages instead of accessing the network.
-n, --dry-run            Report what dependencies would change but don't change
                         any.
    --[no-]precompile    Build executables in immediate dependencies.
-C, --directory=<dir>    Run this in the directory<dir>.

Run "pub_command_runner help" to see global options.
See https://dart.dev/tools/pub/cmd/pub-get for detailed documentation.

$ tool/test-bin/pub_command_runner.dart pub global
[E] Missing subcommand for "pub_command_runner pub global".
[E] 
[E] Usage: pub_command_runner pub global [arguments...]
[E] -h, --help    Print this usage information.
[E] 
[E] Available subcommands:
[E]   activate     Make a package's executables globally available.
[E]   deactivate   Remove a previously activated package.
[E]   list         List globally activated packages.
[E]   run          Run an executable from a globally activated package.
[E] 
[E] Run "pub_command_runner help" to see global options.
[E] See https://dart.dev/tools/pub/cmd/pub-global for detailed documentation.

