diff --git a/dart/dart_package.gni b/dart/dart_package.gni
index 45b913b..0bdc79b 100644
--- a/dart/dart_package.gni
+++ b/dart/dart_package.gni
@@ -159,8 +159,6 @@
         rebase_path(source_dir),
         "--dot-packages",
         rebase_path(dot_packages_file),
-        "--root-build-dir",
-        rebase_path(root_build_dir),
         "--dartanalyzer",
         rebase_path(dart_analyzer_binary),
         "--package-name",
diff --git a/dart/dart_test.gni b/dart/dart_test.gni
index 90f2b23..f8a2e05 100644
--- a/dart/dart_test.gni
+++ b/dart/dart_test.gni
@@ -33,9 +33,15 @@
 #   }
 template("dart_test") {
 
-  template_name = target_name
+  main_target_name = target_name
+  package_target_name = "${target_name}_package"
 
-  dart_package(template_name) {
+  sources_dir = "test"
+  if (defined(invoker.source_dir)) {
+    sources_dir = invoker.source_dir
+  }
+
+  dart_package(package_target_name) {
     forward_variables_from(invoker, [
       "analysis_options",
       "deps",
@@ -44,9 +50,45 @@
 
     infer_package_name = true
 
-    source_dir = "test"
-    if (defined(invoker.source_dir)) {
-      source_dir = invoker.source_dir
-    }
+    source_dir = sources_dir
+  }
+
+  dot_packages_file = "$target_gen_dir/$package_target_name.packages"
+
+  fuchsia_tester_label = "//lib/flutter/packages/flutter_tools:fuchsia_tester($host_toolchain)"
+  fuchsia_tester_out_dir = get_label_info(fuchsia_tester_label, "root_out_dir")
+  fuchsia_tester_bin = "$fuchsia_tester_out_dir/dart-tools/fuchsia_tester"
+
+  flutter_shell_label = "//flutter/shell($host_toolchain)"
+  flutter_shell_out_dir = get_label_info(flutter_shell_label, "root_out_dir")
+  flutter_shell_bin = "$flutter_shell_out_dir/flutter_tester"
+
+  invocation_file = "$target_gen_dir/$target_name.sh"
+
+  action(main_target_name) {
+    script = "//build/dart/gen_test_invocation.py"
+
+    outputs = [
+      invocation_file,
+    ]
+
+    args = [
+      "--out",
+      rebase_path(invocation_file),
+      "--source-dir",
+      rebase_path(sources_dir),
+      "--dot-packages",
+      rebase_path(dot_packages_file),
+      "--test-runner",
+      rebase_path(fuchsia_tester_bin),
+      "--flutter-shell",
+      rebase_path(flutter_shell_bin),
+    ]
+
+    deps = [
+      ":$package_target_name",
+      flutter_shell_label,
+      fuchsia_tester_label,
+    ]
   }
 }
diff --git a/dart/gen_analyzer_invocation.py b/dart/gen_analyzer_invocation.py
index deddd4f..6359dfa 100755
--- a/dart/gen_analyzer_invocation.py
+++ b/dart/gen_analyzer_invocation.py
@@ -18,8 +18,6 @@
                       required=True)
   parser.add_argument('--dot-packages', help='Path to the .packages file',
                       required=True)
-  parser.add_argument('--root-build-dir',
-                      help='Path to root of the build directory', required=True)
   parser.add_argument('--dartanalyzer',
                       help='Path to the Dart analyzer executable',
                       required=True)
@@ -30,7 +28,7 @@
   parser.add_argument('--options', help='Path to analysis options')
   args = parser.parse_args()
 
-  analyzer_file = os.path.join(args.root_build_dir, args.out)
+  analyzer_file = args.out
   analyzer_path = os.path.dirname(analyzer_file)
   if not os.path.exists(analyzer_path):
     os.makedirs(analyzer_path)
diff --git a/dart/gen_test_invocation.py b/dart/gen_test_invocation.py
new file mode 100755
index 0000000..5bd4063
--- /dev/null
+++ b/dart/gen_test_invocation.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+# Copyright 2017 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import argparse
+import os
+import stat
+import string
+import sys
+
+
+def main():
+  parser = argparse.ArgumentParser(
+      'Generate a script that invokes the Dart analyzer')
+  parser.add_argument('--out',
+                      help='Path to the invocation file to generate',
+                      required=True)
+  parser.add_argument('--source-dir',
+                      help='Path to test sources',
+                      required=True)
+  parser.add_argument('--dot-packages',
+                      help='Path to the .packages file',
+                      required=True)
+  parser.add_argument('--test-runner',
+                      help='Path to the test runner',
+                      required=True)
+  parser.add_argument('--flutter-shell',
+                      help='Path to the Flutter shell',
+                      required=True)
+  args = parser.parse_args()
+
+  test_file = args.out
+  test_path = os.path.dirname(test_file)
+  if not os.path.exists(test_path):
+    os.makedirs(test_path)
+
+  script_template = string.Template('''#!/bin/sh
+
+$test_runner \\
+  --packages=$dot_packages \\
+  --shell=$flutter_shell \\
+  --test-directory=$source_dir
+''')
+  with open(test_file, 'w') as file:
+      file.write(script_template.substitute(args.__dict__))
+  permissions = (stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR |
+                 stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP |
+                 stat.S_IROTH)
+  os.chmod(test_file, permissions)
+
+
+if __name__ == '__main__':
+  sys.exit(main())
