anchor.diff:      if (!fs.isFileSync(shellPath)) {
         throwToolExit('Cannot find Flutter shell at $shellPath');
       }
  -    loader.installHook(
  -      shellPath: shellPath,
  -    );
  +    // Put the tester shell where runTests expects it.
  +    // TODO(tvolkert,garymm): Switch to a Fuchsia-specific Artifacts impl.
  +    final Link testerDestLink =
  +        fs.link(artifacts.getArtifactPath(Artifact.flutterTester));
  +    testerDestLink.parent.createSync(recursive: true);
  +    testerDestLink.createSync(shellPath);
   
       PackageMap.globalPackagesPath =
           fs.path.normalize(fs.path.absolute(argResults[_kOptionPackages]));
  -    fs.currentDirectory = testDirectory;
   
  -    await test.main(testArgs);
  -    exit(exitCode);
  +    CoverageCollector collector;
  +    if (argResults['coverage']) {
  +      collector = new CoverageCollector();
  +    }
  +
  +    exitCode = await runTests(
  +      tests,
  +      workDir: testDirectory,
  +      watcher: collector,
  +      enableObservatory: collector != null,
  +    );
  +
  +    if (collector != null) {
  +      // collector expects currentDirectory to be the root of the dart
  +      // package (i.e. contains lib/ and test/ sub-dirs).
  +      fs.currentDirectory = testDirectory.parent;
  +      if (!await
  +          collector.collectCoverageData(argResults[_kOptionCoveragePath]))
  +        throwToolExit('Failed to collect coverage data');
  +    }
     } finally {
       tempDirectory.deleteSync(recursive: true);
     }
  +  // Not sure why this is needed, but main() doesn't seem to exit on its own.
  +  exit(exitCode);
   }
  
positive.code: import 'package:flutter_tools/src/cache.dart';
  import 'package:flutter_tools/src/context_runner.dart';
  import 'package:flutter_tools/src/dart/package_map.dart';
  import 'package:flutter_tools/src/disabled_usage.dart';
  import 'package:flutter_tools/src/globals.dart';
  import 'package:flutter_tools/src/test/flutter_platform.dart' as loader;
  import 'package:flutter_tools/src/usage.dart';
  import 'package:test/src/executable.dart'
      as test; // ignore: implementation_imports
  
  // Note: this was largely inspired by lib/src/commands/test.dart.
  
  
negative.code:   final ArgParser parser = new ArgParser()
      ..addOption(_kOptionPackages, help: 'The .packages file')
      ..addOption(_kOptionShell, help: 'The Flutter shell binary')
      ..addOption(_kOptionTestDirectory, help: 'Directory containing the tests')
      ..addFlag(_kOptionCoverage,
        defaultsTo: false,
        negatable: false,
        help: 'Whether to collect coverage information.',
      )
      ..addOption(_kOptionCoveragePath,
          defaultsTo: 'coverage/lcov.info',
          help: 'Where to store coverage information (if coverage is enabled).',
      );
    final ArgResults argResults = parser.parse(args);
    if (_kRequiredOptions
        .any((String option) => !argResults.options.contains(option))) {
      throwToolExit('Missing option! All options must be specified.');
    }
    final Directory tempDirectory =
        fs.systemTempDirectory.createTempSync('fuchsia_tester');
  