diff --git a/lib/src/command/run.dart b/lib/src/command/run.dart
index 488f731..9e66cec 100644
--- a/lib/src/command/run.dart
+++ b/lib/src/command/run.dart
@@ -30,13 +30,13 @@
     argParser.addFlag('checked', abbr: 'c', hide: true);
     argParser.addOption('mode', help: 'Deprecated option', hide: true);
     // mode exposed for `dartdev run` to use as subprocess.
-    argParser.addFlag('v2', hide: true);
+    argParser.addFlag('dart-dev-run', hide: true);
   }
 
   @override
   Future run() async {
-    if (argResults['v2']) {
-      return await _runV2();
+    if (argResults['dart-dev-run']) {
+      return await _runFromDartDev();
     }
     if (argResults.rest.isEmpty) {
       usageException('Must specify an executable to run.');
@@ -92,7 +92,7 @@
     await flushThenExit(exitCode);
   }
 
-  /// Implement a v2 mode for use in `dartdev run`.
+  /// Implement a mode for use in `dartdev run`.
   ///
   /// Usage: `dartdev run [package[:command]]`
   ///
@@ -102,7 +102,7 @@
   /// Runs `bin/<command>.dart` from package `<package>`. If `<package>` is not
   /// mutable (local root package or path-dependency) a source snapshot will be
   /// cached in `.dart_tool/pub/bin/<package>/<command>.dart.snapshot.dart2`.
-  Future _runV2() async {
+  Future _runFromDartDev() async {
     var package = entrypoint.root.name;
     var command = package;
     var args = <String>[];
diff --git a/test/run/v2/app_can_read_from_stdin_test.dart b/test/run/dartdev/app_can_read_from_stdin_test.dart
similarity index 93%
rename from test/run/v2/app_can_read_from_stdin_test.dart
rename to test/run/dartdev/app_can_read_from_stdin_test.dart
index 2291392..7e117cc 100644
--- a/test/run/v2/app_can_read_from_stdin_test.dart
+++ b/test/run/dartdev/app_can_read_from_stdin_test.dart
@@ -28,7 +28,7 @@
     ]).create();
 
     await pubGet();
-    var pub = await pubRunV2(args: ['myapp:script']);
+    var pub = await pubRunFromDartDev(args: ['myapp:script']);
 
     await expectLater(pub.stdout, emits('started'));
     pub.stdin.writeln('first');
@@ -55,7 +55,7 @@
     ]).create();
 
     await pubGet();
-    var pub = await pubRunV2(args: ['myapp:script']);
+    var pub = await pubRunFromDartDev(args: ['myapp:script']);
 
     await expectLater(pub.stdout, emits('started'));
     pub.stdin.writeln('first');
diff --git a/test/run/v2/errors_if_only_transitive_dependency_test.dart b/test/run/dartdev/errors_if_only_transitive_dependency_test.dart
similarity index 94%
rename from test/run/v2/errors_if_only_transitive_dependency_test.dart
rename to test/run/dartdev/errors_if_only_transitive_dependency_test.dart
index 78d6487..3afd21c 100644
--- a/test/run/v2/errors_if_only_transitive_dependency_test.dart
+++ b/test/run/dartdev/errors_if_only_transitive_dependency_test.dart
@@ -30,7 +30,7 @@
 
     await pubGet();
 
-    var pub = await pubRunV2(args: ['foo:script']);
+    var pub = await pubRunFromDartDev(args: ['foo:script']);
     expect(pub.stderr, emits('Package "foo" is not an immediate dependency.'));
     expect(pub.stderr,
         emits('Cannot run executables in transitive dependencies.'));
diff --git a/test/run/v2/errors_if_path_in_dependency_test.dart b/test/run/dartdev/errors_if_path_in_dependency_test.dart
similarity index 100%
rename from test/run/v2/errors_if_path_in_dependency_test.dart
rename to test/run/dartdev/errors_if_path_in_dependency_test.dart
diff --git a/test/run/v2/forwards_signal_posix_test.dart b/test/run/dartdev/forwards_signal_posix_test.dart
similarity index 95%
rename from test/run/v2/forwards_signal_posix_test.dart
rename to test/run/dartdev/forwards_signal_posix_test.dart
index 0aa9e6d..e90c2f7 100644
--- a/test/run/v2/forwards_signal_posix_test.dart
+++ b/test/run/dartdev/forwards_signal_posix_test.dart
@@ -41,7 +41,7 @@
     ]).create();
 
     await pubGet();
-    var pub = await pubRunV2(args: ['myapp:script']);
+    var pub = await pubRunFromDartDev(args: ['myapp:script']);
 
     await expectLater(pub.stdout, emits('ready'));
     for (var signal in _catchableSignals) {
diff --git a/test/run/v2/loads_package_imports_in_a_dependency_test.dart b/test/run/dartdev/loads_package_imports_in_a_dependency_test.dart
similarity index 93%
rename from test/run/v2/loads_package_imports_in_a_dependency_test.dart
rename to test/run/dartdev/loads_package_imports_in_a_dependency_test.dart
index 9efca58..9673513 100644
--- a/test/run/v2/loads_package_imports_in_a_dependency_test.dart
+++ b/test/run/dartdev/loads_package_imports_in_a_dependency_test.dart
@@ -28,7 +28,7 @@
     ]).create();
 
     await pubGet();
-    var pub = await pubRunV2(args: ['foo:bar']);
+    var pub = await pubRunFromDartDev(args: ['foo:bar']);
     expect(pub.stdout, emits('foobar'));
     await pub.shouldExit();
   });
diff --git a/test/run/v2/nonexistent_dependency_test.dart b/test/run/dartdev/nonexistent_dependency_test.dart
similarity index 91%
rename from test/run/v2/nonexistent_dependency_test.dart
rename to test/run/dartdev/nonexistent_dependency_test.dart
index 3b18c4e..963185c 100644
--- a/test/run/v2/nonexistent_dependency_test.dart
+++ b/test/run/dartdev/nonexistent_dependency_test.dart
@@ -14,7 +14,7 @@
     await d.dir(appPath, [d.appPubspec()]).create();
 
     await pubGet();
-    var pub = await pubRunV2(args: ['foo:script']);
+    var pub = await pubRunFromDartDev(args: ['foo:script']);
     expect(
         pub.stderr,
         emits('Could not find package "foo". Did you forget to add a '
diff --git a/test/run/v2/nonexistent_script_in_dependency_test.dart b/test/run/dartdev/nonexistent_script_in_dependency_test.dart
similarity index 93%
rename from test/run/v2/nonexistent_script_in_dependency_test.dart
rename to test/run/dartdev/nonexistent_script_in_dependency_test.dart
index ab65491..b38b5a6 100644
--- a/test/run/v2/nonexistent_script_in_dependency_test.dart
+++ b/test/run/dartdev/nonexistent_script_in_dependency_test.dart
@@ -22,7 +22,7 @@
 
     await pubGet();
 
-    var pub = await pubRunV2(args: ['foo:script']);
+    var pub = await pubRunFromDartDev(args: ['foo:script']);
     expect(
         pub.stderr,
         emits(
diff --git a/test/run/v2/package_api_test.dart b/test/run/dartdev/package_api_test.dart
similarity index 94%
rename from test/run/v2/package_api_test.dart
rename to test/run/dartdev/package_api_test.dart
index 0126f5e..484e370 100644
--- a/test/run/v2/package_api_test.dart
+++ b/test/run/dartdev/package_api_test.dart
@@ -33,7 +33,7 @@
     ]).create();
 
     await pubGet();
-    var pub = await pubRunV2(args: ['myapp:script']);
+    var pub = await pubRunFromDartDev(args: ['myapp:script']);
 
     expect(pub.stdout, emits('null'));
     expect(pub.stdout,
@@ -58,7 +58,7 @@
 
     await pubGet();
 
-    var pub = await pubRunV2(args: ['foo:script']);
+    var pub = await pubRunFromDartDev(args: ['foo:script']);
 
     expect(pub.stdout, emits('Precompiling executable...'));
     expect(pub.stdout, emits('Precompiled foo:script.'));
diff --git a/test/run/v2/passes_along_arguments_test.dart b/test/run/dartdev/passes_along_arguments_test.dart
similarity index 88%
rename from test/run/v2/passes_along_arguments_test.dart
rename to test/run/dartdev/passes_along_arguments_test.dart
index 78731d0..dfdb923 100644
--- a/test/run/v2/passes_along_arguments_test.dart
+++ b/test/run/dartdev/passes_along_arguments_test.dart
@@ -24,8 +24,8 @@
 
     // Use some args that would trip up pub's arg parser to ensure that it
     // isn't trying to look at them.
-    var pub =
-        await pubRunV2(args: ['myapp:args', '--verbose', '-m', '--', 'help']);
+    var pub = await pubRunFromDartDev(
+        args: ['myapp:args', '--verbose', '-m', '--', 'help']);
 
     expect(pub.stdout, emits('--verbose -m -- help'));
     await pub.shouldExit();
diff --git a/test/run/v2/runs_default_app_without_arguments.dart b/test/run/dartdev/runs_default_app_without_arguments.dart
similarity index 89%
rename from test/run/v2/runs_default_app_without_arguments.dart
rename to test/run/dartdev/runs_default_app_without_arguments.dart
index 40f3cf1..df33725 100644
--- a/test/run/v2/runs_default_app_without_arguments.dart
+++ b/test/run/dartdev/runs_default_app_without_arguments.dart
@@ -15,7 +15,7 @@
     ]).create();
 
     await pubGet();
-    var pub = await pubRunV2(args: []);
+    var pub = await pubRunFromDartDev(args: []);
     expect(pub.stdout, emits('foobar'));
     await pub.shouldExit();
   });
@@ -27,7 +27,7 @@
     ]).create();
 
     await pubGet();
-    var pub = await pubRunV2(args: []);
+    var pub = await pubRunFromDartDev(args: []);
     expect(pub.stdout, emits('foobar'));
     await pub.shouldExit();
   });
@@ -42,7 +42,7 @@
     ]).create();
 
     await pubGet();
-    var pub = await pubRunV2(args: []);
+    var pub = await pubRunFromDartDev(args: []);
     expect(pub.stdout, emits('foobar'));
     await pub.shouldExit();
   });
diff --git a/test/run/v2/runs_from_a_dependency_override_after_dependency_test.dart b/test/run/dartdev/runs_from_a_dependency_override_after_dependency_test.dart
similarity index 91%
rename from test/run/v2/runs_from_a_dependency_override_after_dependency_test.dart
rename to test/run/dartdev/runs_from_a_dependency_override_after_dependency_test.dart
index 846bf82..c3af926 100644
--- a/test/run/v2/runs_from_a_dependency_override_after_dependency_test.dart
+++ b/test/run/dartdev/runs_from_a_dependency_override_after_dependency_test.dart
@@ -25,7 +25,7 @@
 
     await pubGet(args: ['--precompile']);
 
-    var pub = await pubRunV2(args: ['foo:bar']);
+    var pub = await pubRunFromDartDev(args: ['foo:bar']);
     expect(pub.stdout, emits('foobar'));
     await pub.shouldExit();
 
@@ -45,7 +45,7 @@
 
     await pubGet();
 
-    pub = await pubRunV2(args: ['foo:bar']);
+    pub = await pubRunFromDartDev(args: ['foo:bar']);
     expect(pub.stdout, emits('different'));
     await pub.shouldExit();
   });
diff --git a/test/run/v2/runs_named_app_in_dependency_test.dart b/test/run/dartdev/runs_named_app_in_dependency_test.dart
similarity index 92%
rename from test/run/v2/runs_named_app_in_dependency_test.dart
rename to test/run/dartdev/runs_named_app_in_dependency_test.dart
index a667eb1..247335f 100644
--- a/test/run/v2/runs_named_app_in_dependency_test.dart
+++ b/test/run/dartdev/runs_named_app_in_dependency_test.dart
@@ -21,7 +21,7 @@
     ]).create();
 
     await pubGet();
-    var pub = await pubRunV2(args: ['foo:bar']);
+    var pub = await pubRunFromDartDev(args: ['foo:bar']);
     expect(pub.stdout, emits('foobar'));
     await pub.shouldExit();
   });
diff --git a/test/run/v2/runs_named_app_in_dev_dependency_test.dart b/test/run/dartdev/runs_named_app_in_dev_dependency_test.dart
similarity index 93%
rename from test/run/v2/runs_named_app_in_dev_dependency_test.dart
rename to test/run/dartdev/runs_named_app_in_dev_dependency_test.dart
index e2ea1b1..c47717c 100644
--- a/test/run/v2/runs_named_app_in_dev_dependency_test.dart
+++ b/test/run/dartdev/runs_named_app_in_dev_dependency_test.dart
@@ -24,7 +24,7 @@
     ]).create();
 
     await pubGet();
-    var pub = await pubRunV2(args: ['foo:bar']);
+    var pub = await pubRunFromDartDev(args: ['foo:bar']);
     expect(pub.stdout, emits('foobar'));
     await pub.shouldExit();
   });
diff --git a/test/run/v2/runs_shorthand_app_in_dependency_test.dart b/test/run/dartdev/runs_shorthand_app_in_dependency_test.dart
similarity index 93%
rename from test/run/v2/runs_shorthand_app_in_dependency_test.dart
rename to test/run/dartdev/runs_shorthand_app_in_dependency_test.dart
index 357c34f..36eb8f2 100644
--- a/test/run/v2/runs_shorthand_app_in_dependency_test.dart
+++ b/test/run/dartdev/runs_shorthand_app_in_dependency_test.dart
@@ -24,7 +24,7 @@
     ]).create();
 
     await pubGet();
-    var pub = await pubRunV2(args: ['foo']);
+    var pub = await pubRunFromDartDev(args: ['foo']);
     expect(pub.stdout, emits('foo'));
     await pub.shouldExit();
   });
diff --git a/test/run/v2/runs_the_script_in_checked_mode_test.dart b/test/run/dartdev/runs_the_script_in_checked_mode_test.dart
similarity index 100%
rename from test/run/v2/runs_the_script_in_checked_mode_test.dart
rename to test/run/dartdev/runs_the_script_in_checked_mode_test.dart
diff --git a/test/run/v2/runs_the_script_in_unchecked_mode_test.dart b/test/run/dartdev/runs_the_script_in_unchecked_mode_test.dart
similarity index 100%
rename from test/run/v2/runs_the_script_in_unchecked_mode_test.dart
rename to test/run/dartdev/runs_the_script_in_unchecked_mode_test.dart
diff --git a/test/test_pub.dart b/test/test_pub.dart
index af1ccc5..669fc74 100644
--- a/test/test_pub.dart
+++ b/test/test_pub.dart
@@ -219,8 +219,8 @@
 /// expected startup output.
 ///
 /// Returns the `pub run` process.
-Future<PubProcess> pubRunV2({Iterable<String> args}) async {
-  final pub = await startPub(args: ['run', '--v2', ...args]);
+Future<PubProcess> pubRunFromDartDev({Iterable<String> args}) async {
+  final pub = await startPub(args: ['run', '--dart-dev-run', ...args]);
 
   // Loading sources and transformers isn't normally printed, but the pub test
   // infrastructure runs pub in verbose mode, which enables this.
