Always fake ProcessManager when you fake Filesystem in tests (#42369)

...because otherwise, processes that think they're manipulating your
filesystem will be doing crazy things the test is ignoring, leading to
(at best) failures and (at worst) flakes or disk corruption.
diff --git a/packages/flutter_tools/test/general.shard/analytics_test.dart b/packages/flutter_tools/test/general.shard/analytics_test.dart
index 82e4d07..8a66112 100644
--- a/packages/flutter_tools/test/general.shard/analytics_test.dart
+++ b/packages/flutter_tools/test/general.shard/analytics_test.dart
@@ -108,6 +108,7 @@
         'FLUTTER_ANALYTICS_LOG_FILE': 'test',
       }),
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Usage records multiple features in experiment setting', () async {
@@ -129,6 +130,7 @@
         'FLUTTER_ANALYTICS_LOG_FILE': 'test',
       }),
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 
@@ -221,6 +223,7 @@
       expect(log.contains(formatDateTime(dateTime)), isTrue);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       SystemClock: () => mockClock,
       Platform: () => FakePlatform(
         environment: <String, String>{
@@ -246,6 +249,7 @@
       expect(log.contains(formatDateTime(dateTime)), isTrue);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       SystemClock: () => mockClock,
       Platform: () => FakePlatform(
         environment: <String, String>{
diff --git a/packages/flutter_tools/test/general.shard/android/android_device_test.dart b/packages/flutter_tools/test/general.shard/android/android_device_test.dart
index 73e64bb..366f2b2 100644
--- a/packages/flutter_tools/test/general.shard/android/android_device_test.dart
+++ b/packages/flutter_tools/test/general.shard/android/android_device_test.dart
@@ -280,6 +280,7 @@
     expect(AndroidDevice('test').isSupportedForProject(flutterProject), true);
   }, overrides: <Type, Generator>{
     FileSystem: () => MemoryFileSystem(),
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 
   testUsingContext('isSupportedForProject is true with editable host app', () async {
@@ -291,6 +292,7 @@
     expect(AndroidDevice('test').isSupportedForProject(flutterProject), true);
   }, overrides: <Type, Generator>{
     FileSystem: () => MemoryFileSystem(),
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 
   testUsingContext('isSupportedForProject is false with no host app and no module', () async {
@@ -301,6 +303,7 @@
     expect(AndroidDevice('test').isSupportedForProject(flutterProject), false);
   }, overrides: <Type, Generator>{
     FileSystem: () => MemoryFileSystem(),
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 
   group('emulatorId', () {
diff --git a/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart b/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart
index e08151b..e93f7f7 100644
--- a/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart
+++ b/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart
@@ -45,6 +45,7 @@
       expect(sdk.latestVersion.sdkLevel, 23);
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('parse sdk N', () {
@@ -56,6 +57,7 @@
       expect(sdk.latestVersion.sdkLevel, 24);
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('returns sdkmanager path', () {
@@ -66,6 +68,7 @@
       expect(sdk.sdkManagerPath, fs.path.join(sdk.directory, 'tools', 'bin', 'sdkmanager'));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('returns sdkmanager version', () {
@@ -158,6 +161,7 @@
           expect(sdk.ndk.compilerArgs, <String>['--sysroot', realNdkSysroot]);
         }, overrides: <Type, Generator>{
           FileSystem: () => fs,
+          ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
           Platform: () => FakePlatform(operatingSystem: os),
         });
 
@@ -192,6 +196,7 @@
           expect(sdk.ndk.compilerArgs, <String>['--sysroot', realNdkSysroot, '-fuse-ld=$realNdkLinker']);
         }, overrides: <Type, Generator>{
           FileSystem: () => fs,
+          ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
           Platform: () => FakePlatform(operatingSystem: os),
         });
       });
@@ -209,6 +214,7 @@
           expect(explanation, contains('Can not locate ndk-bundle'));
         }, overrides: <Type, Generator>{
           FileSystem: () => fs,
+          ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
           Platform: () => FakePlatform(operatingSystem: os),
         });
       }
diff --git a/packages/flutter_tools/test/general.shard/android/android_studio_test.dart b/packages/flutter_tools/test/general.shard/android/android_studio_test.dart
index cd7216d..5fe9a22 100644
--- a/packages/flutter_tools/test/general.shard/android/android_studio_test.dart
+++ b/packages/flutter_tools/test/general.shard/android/android_studio_test.dart
@@ -66,6 +66,7 @@
           equals('/home/me/.AndroidStudioWithCheese5.0/config/plugins'));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       // Custom home paths are not supported on macOS nor Windows yet,
       // so we force the platform to fake Linux here.
       Platform: () => linuxPlatform(),
@@ -85,6 +86,7 @@
           equals(fs.path.join(homeMac, 'Library', 'Application Support', 'AndroidStudio3.3')));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       // Custom home paths are not supported on macOS nor Windows yet,
       // so we force the platform to fake Linux here.
       Platform: () => macPlatform(),
@@ -114,6 +116,7 @@
           equals(fs.path.join(homeMac, 'Library', 'Application Support', 'AndroidStudio3.3')));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       // Custom home paths are not supported on macOS nor Windows yet,
       // so we force the platform to fake Linux here.
       Platform: () => macPlatform(),
diff --git a/packages/flutter_tools/test/general.shard/android/android_workflow_test.dart b/packages/flutter_tools/test/general.shard/android/android_workflow_test.dart
index 3269e4f..b4a08cd 100644
--- a/packages/flutter_tools/test/general.shard/android/android_workflow_test.dart
+++ b/packages/flutter_tools/test/general.shard/android/android_workflow_test.dart
@@ -51,8 +51,8 @@
   }, overrides: <Type, Generator>{
     AndroidSdk: () => sdk,
     FileSystem: () => fs,
-    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     ProcessManager: () => processManager,
+    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     Stdio: () => stdio,
   });
 
@@ -65,8 +65,8 @@
   }, overrides: <Type, Generator>{
     AndroidSdk: () => sdk,
     FileSystem: () => fs,
-    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     ProcessManager: () => processManager,
+    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     Stdio: () => stdio,
   });
 
@@ -80,8 +80,8 @@
   }, overrides: <Type, Generator>{
     AndroidSdk: () => sdk,
     FileSystem: () => fs,
-    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     ProcessManager: () => processManager,
+    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     Stdio: () => stdio,
   });
 
@@ -98,8 +98,8 @@
   }, overrides: <Type, Generator>{
     AndroidSdk: () => sdk,
     FileSystem: () => fs,
-    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     ProcessManager: () => processManager,
+    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     Stdio: () => stdio,
   });
 
@@ -117,8 +117,8 @@
   }, overrides: <Type, Generator>{
     AndroidSdk: () => sdk,
     FileSystem: () => fs,
-    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     ProcessManager: () => processManager,
+    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     Stdio: () => stdio,
   });
 
@@ -136,8 +136,8 @@
   }, overrides: <Type, Generator>{
     AndroidSdk: () => sdk,
     FileSystem: () => fs,
-    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     ProcessManager: () => processManager,
+    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     Stdio: () => stdio,
   });
 
@@ -149,8 +149,8 @@
   }, overrides: <Type, Generator>{
     AndroidSdk: () => sdk,
     FileSystem: () => fs,
-    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     ProcessManager: () => processManager,
+    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     Stdio: () => stdio,
   });
 
@@ -162,8 +162,8 @@
   }, overrides: <Type, Generator>{
     AndroidSdk: () => sdk,
     FileSystem: () => fs,
-    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     ProcessManager: () => processManager,
+    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     Stdio: () => stdio,
   });
 
@@ -175,8 +175,8 @@
   }, overrides: <Type, Generator>{
     AndroidSdk: () => sdk,
     FileSystem: () => fs,
-    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     ProcessManager: () => processManager,
+    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     Stdio: () => stdio,
   });
 
@@ -188,8 +188,8 @@
   }, overrides: <Type, Generator>{
     AndroidSdk: () => sdk,
     FileSystem: () => fs,
-    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     ProcessManager: () => processManager,
+    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     Stdio: () => stdio,
   });
 
@@ -201,8 +201,8 @@
   }, overrides: <Type, Generator>{
     AndroidSdk: () => sdk,
     FileSystem: () => fs,
-    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     ProcessManager: () => processManager,
+    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     Stdio: () => stdio,
   });
 
@@ -218,8 +218,8 @@
   }, overrides: <Type, Generator>{
     AndroidSdk: () => sdk,
     FileSystem: () => fs,
-    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     ProcessManager: () => processManager,
+    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     Stdio: () => stdio,
   });
 
@@ -272,8 +272,8 @@
   }, overrides: <Type, Generator>{
     AndroidSdk: () => sdk,
     FileSystem: () => fs,
-    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     ProcessManager: () => processManager,
+    Platform: () => FakePlatform()..environment = <String, String>{'HOME': '/home/me'},
     Stdio: () => stdio,
   });
 
diff --git a/packages/flutter_tools/test/general.shard/android/gradle_test.dart b/packages/flutter_tools/test/general.shard/android/gradle_test.dart
index ccc9a21..8b1f1e5 100644
--- a/packages/flutter_tools/test/general.shard/android/gradle_test.dart
+++ b/packages/flutter_tools/test/general.shard/android/gradle_test.dart
@@ -58,6 +58,7 @@
       expect(findApkFiles(gradleProject, buildInfo), <File>[]);
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     test('androidXFailureRegex should match lines with likely AndroidX errors', () {
@@ -130,6 +131,7 @@
       expect(bundle.path, '/foo_barRelease/app.aab');
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Finds app bundle when flavor doesn\'t contain underscores in release mode', () {
@@ -139,6 +141,7 @@
       expect(bundle.path, '/fooRelease/app.aab');
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Finds app bundle when no flavor is used in release mode', () {
@@ -148,6 +151,7 @@
       expect(bundle.path, '/release/app.aab');
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Finds app bundle when flavor contains underscores in debug mode', () {
@@ -157,6 +161,7 @@
       expect(bundle.path, '/foo_barDebug/app.aab');
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Finds app bundle when flavor doesn\'t contain underscores in debug mode', () {
@@ -166,6 +171,7 @@
       expect(bundle.path, '/fooDebug/app.aab');
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Finds app bundle when no flavor is used in debug mode', () {
@@ -175,6 +181,7 @@
       expect(bundle.path, '/debug/app.aab');
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Finds app bundle when flavor contains underscores in profile mode', () {
@@ -184,6 +191,7 @@
       expect(bundle.path, '/foo_barProfile/app.aab');
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Finds app bundle when flavor doesn\'t contain underscores in profile mode', () {
@@ -193,6 +201,7 @@
       expect(bundle.path, '/fooProfile/app.aab');
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Finds app bundle when no flavor is used in profile mode', () {
@@ -202,6 +211,7 @@
       expect(bundle.path, '/profile/app.aab');
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Finds app bundle in release mode - Gradle 3.5', () {
@@ -211,6 +221,7 @@
       expect(bundle.path, '/release/app-release.aab');
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Finds app bundle in profile mode - Gradle 3.5', () {
@@ -220,6 +231,7 @@
       expect(bundle.path, '/profile/app-profile.aab');
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Finds app bundle in debug mode - Gradle 3.5', () {
@@ -229,6 +241,7 @@
       expect(bundle.path, '/debug/app-debug.aab');
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Finds app bundle when flavor contains underscores in release mode - Gradle 3.5', () {
@@ -238,6 +251,7 @@
       expect(bundle.path, '/foo_barRelease/app-foo_bar-release.aab');
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Finds app bundle when flavor contains underscores in profile mode - Gradle 3.5', () {
@@ -247,6 +261,7 @@
       expect(bundle.path, '/foo_barProfile/app-foo_bar-profile.aab');
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Finds app bundle when flavor contains underscores in debug mode - Gradle 3.5', () {
@@ -256,6 +271,7 @@
       expect(bundle.path, '/foo_barDebug/app-foo_bar-debug.aab');
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 
@@ -492,6 +508,7 @@
 
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       Logger: () => mockLogger,
     });
 
@@ -525,6 +542,7 @@
 
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       Logger: () => mockLogger,
     });
   });
@@ -587,9 +605,9 @@
     void testUsingAndroidContext(String description, dynamic testMethod()) {
       testUsingContext(description, testMethod, overrides: <Type, Generator>{
         Artifacts: () => mockArtifacts,
-        ProcessManager: () => mockProcessManager,
         Platform: () => android,
         FileSystem: () => fs,
+        ProcessManager: () => mockProcessManager,
       });
     }
 
@@ -1011,6 +1029,7 @@
     }, overrides: <Type, Generator>{
       Cache: () => Cache(rootOverride: tempDir),
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Inject the wrapper when some files are missing', () {
@@ -1051,6 +1070,7 @@
     }, overrides: <Type, Generator>{
       Cache: () => Cache(rootOverride: tempDir),
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Gives executable permission to gradle', () {
@@ -1068,6 +1088,7 @@
     }, overrides: <Type, Generator>{
       Cache: () => Cache(rootOverride: tempDir),
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       OperatingSystemUtils: () => OperatingSystemUtils(),
     });
   });
@@ -1089,6 +1110,7 @@
 
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('throws ToolExit if it cannot write gradle.properties', () {
@@ -1126,6 +1148,7 @@
         equals('android.enableR8=true'));
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('sets android.enableR8=true', () {
@@ -1146,6 +1169,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 
@@ -1167,6 +1191,7 @@
 
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('returns false when the project is not using AndroidX', () async {
@@ -1180,6 +1205,7 @@
 
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('returns false when gradle.properties does not exist', () async {
@@ -1189,6 +1215,7 @@
 
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 
@@ -1291,8 +1318,8 @@
     }, overrides: <Type, Generator>{
       AndroidSdk: () => mockAndroidSdk,
       FileSystem: () => fs,
-      GradleUtils: () => FakeGradleUtils(),
       ProcessManager: () => mockProcessManager,
+      GradleUtils: () => FakeGradleUtils(),
     });
   });
 
@@ -1405,9 +1432,9 @@
       AndroidStudio: () => mockAndroidStudio,
       Artifacts: () => mockArtifacts,
       Cache: () => cache,
-      ProcessManager: () => mockProcessManager,
       Platform: () => android,
       FileSystem: () => fs,
+      ProcessManager: () => mockProcessManager,
     });
   });
 }
diff --git a/packages/flutter_tools/test/general.shard/application_package_test.dart b/packages/flutter_tools/test/general.shard/application_package_test.dart
index 6917370..06c3b00 100644
--- a/packages/flutter_tools/test/general.shard/application_package_test.dart
+++ b/packages/flutter_tools/test/general.shard/application_package_test.dart
@@ -211,6 +211,7 @@
   group('PrebuiltIOSApp', () {
     final Map<Type, Generator> overrides = <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       PlistParser: () => MockPlistUtils(),
       Platform: _kNoColorTerminalPlatform,
       OperatingSystemUtils: () => MockOperatingSystemUtils(),
@@ -362,6 +363,7 @@
   group('FuchsiaApp', () {
     final Map<Type, Generator> overrides = <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       Platform: _kNoColorTerminalPlatform,
       OperatingSystemUtils: () => MockOperatingSystemUtils(),
     };
diff --git a/packages/flutter_tools/test/general.shard/artifacts_test.dart b/packages/flutter_tools/test/general.shard/artifacts_test.dart
index 2086547..a5539d5 100644
--- a/packages/flutter_tools/test/general.shard/artifacts_test.dart
+++ b/packages/flutter_tools/test/general.shard/artifacts_test.dart
@@ -45,6 +45,7 @@
       }, overrides: <Type, Generator>{
         Cache: () => Cache(rootOverride: tempDir),
         FileSystem: () => memoryFileSystem,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Platform: () => FakePlatform(operatingSystem: 'linux'),
       });
 
@@ -64,6 +65,7 @@
       }, overrides: <Type, Generator>{
         Cache: () => Cache(rootOverride: tempDir),
         FileSystem: () => memoryFileSystem,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Platform: () => FakePlatform(operatingSystem: 'linux'),
       });
     });
@@ -93,6 +95,7 @@
         );
       }, overrides: <Type, Generator>{
         FileSystem: () => memoryFileSystem,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Platform: () => FakePlatform(operatingSystem: 'linux'),
       });
 
@@ -111,6 +114,7 @@
         );
       }, overrides: <Type, Generator>{
         FileSystem: () => memoryFileSystem,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Platform: () => FakePlatform(operatingSystem: 'linux'),
       });
 
@@ -118,6 +122,7 @@
         expect(artifacts.getArtifactPath(Artifact.engineDartBinary), contains('.exe'));
       }, overrides: <Type, Generator>{
         FileSystem: () => memoryFileSystem,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Platform: () => FakePlatform(operatingSystem: 'windows'),
       });
 
@@ -125,6 +130,7 @@
         expect(artifacts.getArtifactPath(Artifact.engineDartBinary), isNot(contains('.exe')));
       }, overrides: <Type, Generator>{
         FileSystem: () => memoryFileSystem,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Platform: () => FakePlatform(operatingSystem: 'linux'),
       });
     });
diff --git a/packages/flutter_tools/test/general.shard/asset_bundle_package_fonts_test.dart b/packages/flutter_tools/test/general.shard/asset_bundle_package_fonts_test.dart
index 9e50586..db44a3b 100644
--- a/packages/flutter_tools/test/general.shard/asset_bundle_package_fonts_test.dart
+++ b/packages/flutter_tools/test/general.shard/asset_bundle_package_fonts_test.dart
@@ -126,6 +126,7 @@
       expect(bundle.entries.containsKey('FontManifest.json'), isTrue);
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('App font uses font file from package', () async {
@@ -154,6 +155,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('App font uses local font file and package font file', () async {
@@ -186,6 +188,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('App uses package font with own font file', () async {
@@ -219,6 +222,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('App uses package font with font file from another package', () async {
@@ -253,6 +257,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('App uses package font with properties and own font file', () async {
@@ -288,6 +293,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('App uses local font and package font with own font file.', () async {
@@ -327,6 +333,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 }
diff --git a/packages/flutter_tools/test/general.shard/asset_bundle_package_test.dart b/packages/flutter_tools/test/general.shard/asset_bundle_package_test.dart
index f6adfe7..6ab2369 100644
--- a/packages/flutter_tools/test/general.shard/asset_bundle_package_test.dart
+++ b/packages/flutter_tools/test/general.shard/asset_bundle_package_test.dart
@@ -135,6 +135,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('No assets are bundled when the package has an asset that is not listed', () async {
@@ -162,6 +163,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('One asset is bundled when the package has and lists one asset its pubspec', () async {
@@ -189,6 +191,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext("One asset is bundled when the package has one asset, listed in the app's pubspec", () async {
@@ -216,6 +219,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('One asset and its variant are bundled when the package has an asset and a variant, and lists the asset in its pubspec', () async {
@@ -243,6 +247,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('One asset and its variant are bundled when the package has an asset and a variant, and the app lists the asset in its pubspec', () async {
@@ -273,6 +278,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Two assets are bundled when the package has and lists two assets in its pubspec', () async {
@@ -301,6 +307,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext("Two assets are bundled when the package has two assets, listed in the app's pubspec", () async {
@@ -336,6 +343,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Two assets are bundled when two packages each have and list an asset their pubspec', () async {
@@ -375,6 +383,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext("Two assets are bundled when two packages each have an asset, listed in the app's pubspec", () async {
@@ -417,6 +426,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('One asset is bundled when the app depends on a package, listing in its pubspec an asset from another package', () async {
@@ -451,6 +461,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 
@@ -480,6 +491,7 @@
     );
   }, overrides: <Type, Generator>{
     FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 
   group('AssetBundle assets from scanned paths', () {
@@ -511,6 +523,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Two assets are bundled when listing one and scanning second directory', () async {
@@ -541,6 +554,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('One asset is bundled with variant, scanning wrong directory', () async {
@@ -566,6 +580,7 @@
       assert(bundle.entries['AssetManifest.json'] == null,'Invalid pubspec.yaml should not generate AssetManifest.json'  );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 
@@ -597,6 +612,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('No asset is bundled with variant, no assets or directories are listed', () async {
@@ -625,6 +641,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Expect error generating manifest, wrong non-existing directory is listed', () async {
@@ -658,6 +675,7 @@
       }
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
   });
diff --git a/packages/flutter_tools/test/general.shard/asset_bundle_test.dart b/packages/flutter_tools/test/general.shard/asset_bundle_test.dart
index 3ffd01f..8f97826 100644
--- a/packages/flutter_tools/test/general.shard/asset_bundle_test.dart
+++ b/packages/flutter_tools/test/general.shard/asset_bundle_test.dart
@@ -3,7 +3,6 @@
 // found in the LICENSE file.
 
 import 'dart:convert';
-import 'dart:io' as io;
 
 import 'package:file/file.dart';
 import 'package:file/memory.dart';
@@ -39,6 +38,7 @@
       expect(ab.entries.length, greaterThan(0));
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('empty pubspec', () async {
@@ -56,6 +56,7 @@
       );
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('wildcard directories are updated when filesystem changes', () async {
@@ -96,10 +97,10 @@
       expect(bundle.entries.length, 5);
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('handle removal of wildcard directories', () async {
-      fs.file('.packages').createSync();
       fs.file(fs.path.join('assets', 'foo', 'bar.txt')).createSync(recursive: true);
       fs.file('pubspec.yaml')
         ..createSync()
@@ -109,6 +110,7 @@
   assets:
     - assets/foo/
 ''');
+      fs.file('.packages').createSync();
       final AssetBundle bundle = AssetBundleFactory.instance.createBundle();
       await bundle.build(manifestPath: 'pubspec.yaml');
       // Expected assets:
@@ -126,6 +128,9 @@
         ..writeAsStringSync(r'''
 name: example''');
 
+      // touch .packages to make sure its change time is after pubspec.yaml's
+      fs.file('.packages').createSync();
+
       // Even though the previous file was removed, it is left in the
       // asset manifest and not updated. This is due to the devfs not
       // supporting file deletion.
@@ -139,7 +144,8 @@
       expect(bundle.entries.length, 4);
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
-    }, skip: io.Platform.isWindows /* https://github.com/flutter/flutter/issues/34446 */);
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
+    });
   });
 
 }
diff --git a/packages/flutter_tools/test/general.shard/asset_bundle_variant_test.dart b/packages/flutter_tools/test/general.shard/asset_bundle_variant_test.dart
index a2b37f1..2b6a383 100644
--- a/packages/flutter_tools/test/general.shard/asset_bundle_variant_test.dart
+++ b/packages/flutter_tools/test/general.shard/asset_bundle_variant_test.dart
@@ -92,6 +92,7 @@
       }
     }, overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 }
diff --git a/packages/flutter_tools/test/general.shard/base/build_test.dart b/packages/flutter_tools/test/general.shard/base/build_test.dart
index 99dd36f..65d5e06 100644
--- a/packages/flutter_tools/test/general.shard/base/build_test.dart
+++ b/packages/flutter_tools/test/general.shard/base/build_test.dart
@@ -254,6 +254,7 @@
       AndroidSdk: () => mockAndroidSdk,
       Artifacts: () => mockArtifacts,
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       GenSnapshot: () => genSnapshot,
       Xcode: () => mockXcode,
       Logger: () => bufferLogger,
diff --git a/packages/flutter_tools/test/general.shard/base/file_system_test.dart b/packages/flutter_tools/test/general.shard/base/file_system_test.dart
index e0a4155..b647b60 100644
--- a/packages/flutter_tools/test/general.shard/base/file_system_test.dart
+++ b/packages/flutter_tools/test/general.shard/base/file_system_test.dart
@@ -20,12 +20,18 @@
     testUsingContext('recursively creates a directory if it does not exist', () async {
       ensureDirectoryExists('foo/bar/baz.flx');
       expect(fs.isDirectorySync('foo/bar'), true);
-    }, overrides: <Type, Generator>{FileSystem: () => fs});
+    }, overrides: <Type, Generator>{
+      FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
+    });
 
     testUsingContext('throws tool exit on failure to create', () async {
       fs.file('foo').createSync();
       expect(() => ensureDirectoryExists('foo/bar.flx'), throwsToolExit());
-    }, overrides: <Type, Generator>{FileSystem: () => fs});
+    }, overrides: <Type, Generator>{
+      FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
+    });
   });
 
   group('copyDirectorySync', () {
@@ -80,6 +86,7 @@
       expect(destination.childDirectory('nested').childFile('a.txt').existsSync(), isFalse);
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 
diff --git a/packages/flutter_tools/test/general.shard/base/fingerprint_test.dart b/packages/flutter_tools/test/general.shard/base/fingerprint_test.dart
index 5068a49..0a40128 100644
--- a/packages/flutter_tools/test/general.shard/base/fingerprint_test.dart
+++ b/packages/flutter_tools/test/general.shard/base/fingerprint_test.dart
@@ -30,6 +30,7 @@
 
     final Map<Type, Generator> contextOverrides = <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     };
 
     testUsingContext('throws when depfile is malformed', () {
@@ -290,7 +291,10 @@
           () => Fingerprint.fromBuildInputs(<String, String>{}, <String>['a.dart', 'b.dart']),
           throwsArgumentError,
         );
-      }, overrides: <Type, Generator>{FileSystem: () => fs});
+      }, overrides: <Type, Generator>{
+        FileSystem: () => fs,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
+      });
 
       testUsingContext('populates checksums for valid files', () {
         fs.file('a.dart').writeAsStringSync('This is a');
@@ -301,7 +305,10 @@
         expect(jsonObject['files'], hasLength(2));
         expect(jsonObject['files']['a.dart'], '8a21a15fad560b799f6731d436c1b698');
         expect(jsonObject['files']['b.dart'], '6f144e08b58cd0925328610fad7ac07c');
-      }, overrides: <Type, Generator>{FileSystem: () => fs});
+      }, overrides: <Type, Generator>{
+        FileSystem: () => fs,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
+      });
 
       testUsingContext('includes framework version', () {
         final Fingerprint fingerprint = Fingerprint.fromBuildInputs(<String, String>{}, <String>[]);
@@ -480,7 +487,10 @@
       fs = MemoryFileSystem();
     });
 
-    final Map<Type, Generator> contextOverrides = <Type, Generator>{FileSystem: () => fs};
+    final Map<Type, Generator> contextOverrides = <Type, Generator>{
+      FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
+    };
 
     testUsingContext('returns one file if only one is listed', () {
       fs.file('a.d').writeAsStringSync('snapshot.d: /foo/a.dart');
diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart
index ec49906..ba3763f 100644
--- a/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart
+++ b/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart
@@ -11,6 +11,7 @@
 import 'package:mockito/mockito.dart';
 
 import '../../../src/common.dart';
+import '../../../src/fake_process_manager.dart';
 import '../../../src/testbed.dart';
 
 void main() {
@@ -51,6 +52,7 @@
       fs.directory('windows').createSync();
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(style: FileSystemStyle.windows),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       Platform: () => platform,
     });
   });
diff --git a/packages/flutter_tools/test/general.shard/cache_test.dart b/packages/flutter_tools/test/general.shard/cache_test.dart
index 1c86af7..d3f9d58 100644
--- a/packages/flutter_tools/test/general.shard/cache_test.dart
+++ b/packages/flutter_tools/test/general.shard/cache_test.dart
@@ -64,6 +64,7 @@
       Cache.releaseLockEarly();
     }, overrides: <Type, Generator>{
       FileSystem: () => mockFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('throws tool exit when lockfile open fails', () async {
@@ -72,6 +73,7 @@
       expect(() async => await Cache.lock(), throwsA(isA<ToolExit>()));
     }, overrides: <Type, Generator>{
       FileSystem: () => mockFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('should not throw when FLUTTER_ALREADY_LOCKED is set', () async {
@@ -100,6 +102,7 @@
     }, overrides: <Type, Generator>{
       Cache: ()=> mockCache,
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Gradle wrapper should be up to date, only if all cached artifact are available', () {
@@ -115,6 +118,7 @@
     }, overrides: <Type, Generator>{
       Cache: ()=> mockCache,
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     test('should not be up to date, if some cached artifact is not', () {
@@ -206,6 +210,7 @@
     expect(flattenNameSubdirs(Uri.parse('https://www.flutter.dev')), 'www.flutter.dev');
   }, overrides: <Type, Generator>{
     FileSystem: () => MemoryFileSystem(),
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 
   test('Unstable artifacts', () {
@@ -256,6 +261,7 @@
     }, overrides: <Type, Generator>{
       Cache: ()=> mockCache,
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       HttpClientFactory: () => () => fakeHttpClient,
       OperatingSystemUtils: () => mockOperatingSystemUtils,
       Platform: () => fakePlatform,
diff --git a/packages/flutter_tools/test/general.shard/channel_test.dart b/packages/flutter_tools/test/general.shard/channel_test.dart
index 3e42ece..593347b 100644
--- a/packages/flutter_tools/test/general.shard/channel_test.dart
+++ b/packages/flutter_tools/test/general.shard/channel_test.dart
@@ -157,8 +157,8 @@
         environment: anyNamed('environment'),
       )).called(1);
     }, overrides: <Type, Generator>{
-      ProcessManager: () => mockProcessManager,
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => mockProcessManager,
     });
 
     // This verifies that bug https://github.com/flutter/flutter/issues/21134
@@ -218,8 +218,8 @@
       expect(testLogger.errorText, hasLength(0));
       expect(versionCheckFile.existsSync(), isFalse);
     }, overrides: <Type, Generator>{
-      ProcessManager: () => mockProcessManager,
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => mockProcessManager,
     });
   });
 }
diff --git a/packages/flutter_tools/test/general.shard/commands/build_aot_test.dart b/packages/flutter_tools/test/general.shard/commands/build_aot_test.dart
index 7381ee8..3804f4f 100644
--- a/packages/flutter_tools/test/general.shard/commands/build_aot_test.dart
+++ b/packages/flutter_tools/test/general.shard/commands/build_aot_test.dart
@@ -41,6 +41,7 @@
   }, overrides: <Type, Generator>{
     Artifacts: () => LocalEngineArtifacts('/engine', 'ios_profile', 'host_profile'),
     FileSystem: () => memoryFileSystem,
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 
   testUsingContext('build aot prints error if Clang version invalid', () async {
diff --git a/packages/flutter_tools/test/general.shard/commands/build_apk_test.dart b/packages/flutter_tools/test/general.shard/commands/build_apk_test.dart
index 28bbe6c..c3316c6 100644
--- a/packages/flutter_tools/test/general.shard/commands/build_apk_test.dart
+++ b/packages/flutter_tools/test/general.shard/commands/build_apk_test.dart
@@ -189,8 +189,8 @@
       overrides: <Type, Generator>{
         AndroidSdk: () => mockAndroidSdk,
         GradleUtils: () => GradleUtils(),
-        ProcessManager: () => mockProcessManager,
         FileSystem: () => memoryFileSystem,
+        ProcessManager: () => mockProcessManager,
       });
     });
 
diff --git a/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart b/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart
index 41970b4..9130bbe 100644
--- a/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart
+++ b/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart
@@ -89,8 +89,8 @@
     expect(testLogger.errorText, isEmpty);
     expect(error, isNull);
   }, overrides: <Type, Generator>{
-    ProcessManager: () => MockProcessManager(69),
     FileSystem: () => MockFileSystem(),
+    ProcessManager: () => MockProcessManager(69),
     Platform: () => FakePlatform(
       environment: UnmodifiableMapView<String, String>(<String, String>{}),
     ),
@@ -144,8 +144,8 @@
       expect(error, isNull);
     });
   }, overrides: <Type, Generator>{
-    ProcessManager: () => MockProcessManager(69),
     FileSystem: () => MockFileSystem(),
+    ProcessManager: () => MockProcessManager(69),
     Platform: () => FakePlatform(
       environment: UnmodifiableMapView<String, String>(<String, String>{}),
     ),
@@ -171,8 +171,8 @@
       expect(error, isNull);
     });
   }, overrides: <Type, Generator>{
-    ProcessManager: () => MockProcessManager(69),
     FileSystem: () => MockFileSystem(),
+    ProcessManager: () => MockProcessManager(69),
     Platform: () => FakePlatform(
       environment: UnmodifiableMapView<String, String>(<String, String>{
         'PUB_CACHE': 'custom/pub-cache/path',
@@ -186,8 +186,8 @@
     await pub.get(context: PubContext.flutterTests, checkLastModified: false);
     verify(flutterUsage.sendEvent('pub-result', 'flutter-tests', label: 'success')).called(1);
   }, overrides: <Type, Generator>{
-    ProcessManager: () => MockProcessManager(0),
     FileSystem: () => MockFileSystem(),
+    ProcessManager: () => MockProcessManager(0),
     Platform: () => FakePlatform(
       environment: UnmodifiableMapView<String, String>(<String, String>{
         'PUB_CACHE': 'custom/pub-cache/path',
@@ -206,8 +206,8 @@
     }
     verify(flutterUsage.sendEvent('pub-result', 'flutter-tests', label: 'failure')).called(1);
   }, overrides: <Type, Generator>{
-    ProcessManager: () => MockProcessManager(1),
     FileSystem: () => MockFileSystem(),
+    ProcessManager: () => MockProcessManager(1),
     Platform: () => FakePlatform(
       environment: UnmodifiableMapView<String, String>(<String, String>{
         'PUB_CACHE': 'custom/pub-cache/path',
@@ -226,11 +226,11 @@
     }
     verify(flutterUsage.sendEvent('pub-result', 'flutter-tests', label: 'version-solving-failed')).called(1);
   }, overrides: <Type, Generator>{
+    FileSystem: () => MockFileSystem(),
     ProcessManager: () => MockProcessManager(
       1,
       stderr: 'version solving failed',
     ),
-    FileSystem: () => MockFileSystem(),
     Platform: () => FakePlatform(
       environment: UnmodifiableMapView<String, String>(<String, String>{
         'PUB_CACHE': 'custom/pub-cache/path',
diff --git a/packages/flutter_tools/test/general.shard/devfs_test.dart b/packages/flutter_tools/test/general.shard/devfs_test.dart
index 0a49b42..9c63f52 100644
--- a/packages/flutter_tools/test/general.shard/devfs_test.dart
+++ b/packages/flutter_tools/test/general.shard/devfs_test.dart
@@ -89,6 +89,7 @@
       expect(content.isModified, isFalse);
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     }, skip: Platform.isWindows); // TODO(jonahwilliams): fix or disable this functionality.
   });
 
@@ -158,6 +159,7 @@
       verify(httpRequest.close()).called(kFailedAttempts + 1);
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 
@@ -206,6 +208,7 @@
       expect(report.success, true);
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('delete dev file system', () async {
@@ -215,6 +218,7 @@
       expect(devFS.assetPathsToEvict, isEmpty);
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('cleanup preexisting file system', () async {
@@ -242,6 +246,7 @@
       expect(devFS.assetPathsToEvict, isEmpty);
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('reports unsuccessful compile when errors are returned', () async {
@@ -271,6 +276,7 @@
       expect(devFS.lastCompiled, previousCompile);
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('correctly updates last compiled time when compilation does not fail', () async {
@@ -304,6 +310,7 @@
       expect(devFS.lastCompiled, isNot(previousCompile));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 }
diff --git a/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart b/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart
index 8432487..7f0d347 100644
--- a/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart
+++ b/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart
@@ -621,6 +621,7 @@
         },
         overrides: <Type, Generator>{
           FileSystem: () => filesystem,
+          ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         },
       );
     }
diff --git a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart
index 1db28a2..a93073a 100644
--- a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart
+++ b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart
@@ -75,6 +75,7 @@
       expect(device.isSupportedForProject(FlutterProject.current()), true);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('supported for project', () async {
@@ -84,6 +85,7 @@
       expect(device.isSupportedForProject(FlutterProject.current()), true);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('not supported for project', () async {
@@ -92,6 +94,7 @@
       expect(device.isSupportedForProject(FlutterProject.current()), false);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 
@@ -445,6 +448,7 @@
       expect(launchResult.hasObservatory, isFalse);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FuchsiaDeviceTools: () => fuchsiaDeviceTools,
       FuchsiaSdk: () => fuchsiaSdk,
       OperatingSystemUtils: () => osUtils,
@@ -469,6 +473,7 @@
       expect(await device.stopApp(app), isTrue);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FuchsiaDeviceTools: () => fuchsiaDeviceTools,
       FuchsiaSdk: () => fuchsiaSdk,
       OperatingSystemUtils: () => osUtils,
@@ -481,6 +486,7 @@
       expect(launchResult.hasObservatory, isTrue);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FuchsiaDeviceTools: () => fuchsiaDeviceTools,
       FuchsiaSdk: () => fuchsiaSdk,
       OperatingSystemUtils: () => osUtils,
@@ -493,6 +499,7 @@
       expect(launchResult.hasObservatory, isFalse);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FuchsiaDeviceTools: () => fuchsiaDeviceTools,
       FuchsiaSdk: () => fuchsiaSdk,
       OperatingSystemUtils: () => osUtils,
@@ -505,6 +512,7 @@
       expect(launchResult.hasObservatory, isTrue);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FuchsiaDeviceTools: () => fuchsiaDeviceTools,
       FuchsiaSdk: () => fuchsiaSdk,
       OperatingSystemUtils: () => osUtils,
@@ -517,6 +525,7 @@
       expect(launchResult.hasObservatory, isFalse);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FuchsiaDeviceTools: () => fuchsiaDeviceTools,
       FuchsiaSdk: () => MockFuchsiaSdk(devFinder: FailingDevFinder()),
       OperatingSystemUtils: () => osUtils,
@@ -529,6 +538,7 @@
       expect(launchResult.hasObservatory, isFalse);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FuchsiaDeviceTools: () => fuchsiaDeviceTools,
       FuchsiaSdk: () => MockFuchsiaSdk(pm: FailingPM()),
       OperatingSystemUtils: () => osUtils,
@@ -541,6 +551,7 @@
       expect(launchResult.hasObservatory, isFalse);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FuchsiaDeviceTools: () => FakeFuchsiaDeviceTools(amber: FailingAmberCtl()),
       FuchsiaSdk: () => fuchsiaSdk,
       OperatingSystemUtils: () => osUtils,
@@ -553,6 +564,7 @@
       expect(launchResult.hasObservatory, isFalse);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FuchsiaDeviceTools: () => FakeFuchsiaDeviceTools(tiles: FailingTilesCtl()),
       FuchsiaSdk: () => fuchsiaSdk,
       OperatingSystemUtils: () => osUtils,
diff --git a/packages/flutter_tools/test/general.shard/intellij/intellij_test.dart b/packages/flutter_tools/test/general.shard/intellij/intellij_test.dart
index 181141c..2130ed2 100644
--- a/packages/flutter_tools/test/general.shard/intellij/intellij_test.dart
+++ b/packages/flutter_tools/test/general.shard/intellij/intellij_test.dart
@@ -69,6 +69,7 @@
         expect(message.message, contains('recommended minimum version'));
       }, overrides: <Type, Generator>{
         FileSystem: () => fs,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       });
 
       testUsingContext('not found', () async {
@@ -89,6 +90,7 @@
         expect(message.message, contains('Flutter plugin not installed'));
       }, overrides: <Type, Generator>{
         FileSystem: () => fs,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       });
     });
   });
diff --git a/packages/flutter_tools/test/general.shard/ios/devices_test.dart b/packages/flutter_tools/test/general.shard/ios/devices_test.dart
index 64ba0e3..47061e5 100644
--- a/packages/flutter_tools/test/general.shard/ios/devices_test.dart
+++ b/packages/flutter_tools/test/general.shard/ios/devices_test.dart
@@ -763,6 +763,7 @@
     expect(IOSDevice('test').isSupportedForProject(flutterProject), true);
   }, overrides: <Type, Generator>{
     FileSystem: () => MemoryFileSystem(),
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     Platform: () => macPlatform,
   });
   testUsingContext('IOSDevice.isSupportedForProject is true with editable host app', () async {
@@ -774,6 +775,7 @@
     expect(IOSDevice('test').isSupportedForProject(flutterProject), true);
   }, overrides: <Type, Generator>{
     FileSystem: () => MemoryFileSystem(),
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     Platform: () => macPlatform,
   });
 
@@ -785,6 +787,7 @@
     expect(IOSDevice('test').isSupportedForProject(flutterProject), false);
   }, overrides: <Type, Generator>{
     FileSystem: () => MemoryFileSystem(),
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     Platform: () => macPlatform,
   });
 }
diff --git a/packages/flutter_tools/test/general.shard/ios/simulators_test.dart b/packages/flutter_tools/test/general.shard/ios/simulators_test.dart
index 289c3af..cdac3b8 100644
--- a/packages/flutter_tools/test/general.shard/ios/simulators_test.dart
+++ b/packages/flutter_tools/test/general.shard/ios/simulators_test.dart
@@ -486,6 +486,7 @@
     expect(IOSSimulator('test').isSupportedForProject(flutterProject), true);
   }, overrides: <Type, Generator>{
     FileSystem: () => MemoryFileSystem(),
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 
   testUsingContext('IOSDevice.isSupportedForProject is true with editable host app', () async {
@@ -497,6 +498,7 @@
     expect(IOSSimulator('test').isSupportedForProject(flutterProject), true);
   }, overrides: <Type, Generator>{
     FileSystem: () => MemoryFileSystem(),
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 
   testUsingContext('IOSDevice.isSupportedForProject is false with no host app and no module', () async {
@@ -507,5 +509,6 @@
     expect(IOSSimulator('test').isSupportedForProject(flutterProject), false);
   }, overrides: <Type, Generator>{
     FileSystem: () => MemoryFileSystem(),
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 }
diff --git a/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart b/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart
index c238ab0..48f3cb9 100644
--- a/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart
+++ b/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart
@@ -39,9 +39,9 @@
 
     void testUsingOsxContext(String description, dynamic testMethod()) {
       testUsingContext(description, testMethod, overrides: <Type, Generator>{
-        ProcessManager: () => mockProcessManager,
         Platform: () => macOS,
         FileSystem: () => fs,
+        ProcessManager: () => mockProcessManager,
       });
     }
 
@@ -188,9 +188,9 @@
 
     void testUsingOsxContext(String description, dynamic testMethod()) {
       testUsingContext(description, testMethod, overrides: <Type, Generator>{
-        ProcessManager: () => mockProcessManager,
         Platform: () => macOS,
         FileSystem: () => fs,
+        ProcessManager: () => mockProcessManager,
       });
     }
 
@@ -355,9 +355,9 @@
     void testUsingOsxContext(String description, dynamic testMethod()) {
       testUsingContext(description, testMethod, overrides: <Type, Generator>{
         Artifacts: () => mockArtifacts,
-        ProcessManager: () => mockProcessManager,
         Platform: () => macOS,
         FileSystem: () => fs,
+        ProcessManager: () => mockProcessManager,
       });
     }
 
diff --git a/packages/flutter_tools/test/general.shard/linux/linux_device_test.dart b/packages/flutter_tools/test/general.shard/linux/linux_device_test.dart
index aafffb9..4215498 100644
--- a/packages/flutter_tools/test/general.shard/linux/linux_device_test.dart
+++ b/packages/flutter_tools/test/general.shard/linux/linux_device_test.dart
@@ -16,29 +16,27 @@
 import '../../src/context.dart';
 
 void main() {
-  group(LinuxDevice, () {
-    final LinuxDevice device = LinuxDevice();
-    final MockPlatform notLinux = MockPlatform();
+  final LinuxDevice device = LinuxDevice();
+  final MockPlatform notLinux = MockPlatform();
 
-    when(notLinux.isLinux).thenReturn(false);
+  when(notLinux.isLinux).thenReturn(false);
 
-    testUsingContext('defaults', () async {
-      final PrebuiltLinuxApp linuxApp = PrebuiltLinuxApp(executable: 'foo');
-      expect(await device.targetPlatform, TargetPlatform.linux_x64);
-      expect(device.name, 'Linux');
-      expect(await device.installApp(linuxApp), true);
-      expect(await device.uninstallApp(linuxApp), true);
-      expect(await device.isLatestBuildInstalled(linuxApp), true);
-      expect(await device.isAppInstalled(linuxApp), true);
-      expect(await device.stopApp(linuxApp), true);
-      expect(device.category, Category.desktop);
-    });
+  testUsingContext('LinuxDevice defaults', () async {
+    final PrebuiltLinuxApp linuxApp = PrebuiltLinuxApp(executable: 'foo');
+    expect(await device.targetPlatform, TargetPlatform.linux_x64);
+    expect(device.name, 'Linux');
+    expect(await device.installApp(linuxApp), true);
+    expect(await device.uninstallApp(linuxApp), true);
+    expect(await device.isLatestBuildInstalled(linuxApp), true);
+    expect(await device.isAppInstalled(linuxApp), true);
+    expect(await device.stopApp(linuxApp), true);
+    expect(device.category, Category.desktop);
+  });
 
-    testUsingContext('No devices listed if platform unsupported', () async {
-      expect(await LinuxDevices().devices, <Device>[]);
-    }, overrides: <Type, Generator>{
-      Platform: () => notLinux,
-    });
+  testUsingContext('LinuxDevice: no devices listed if platform unsupported', () async {
+    expect(await LinuxDevices().devices, <Device>[]);
+  }, overrides: <Type, Generator>{
+    Platform: () => notLinux,
   });
 
   testUsingContext('LinuxDevice.isSupportedForProject is true with editable host app', () async {
@@ -50,6 +48,7 @@
     expect(LinuxDevice().isSupportedForProject(flutterProject), true);
   }, overrides: <Type, Generator>{
     FileSystem: () => MemoryFileSystem(),
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 
   testUsingContext('LinuxDevice.isSupportedForProject is false with no host app', () async {
@@ -60,9 +59,10 @@
     expect(LinuxDevice().isSupportedForProject(flutterProject), false);
   }, overrides: <Type, Generator>{
     FileSystem: () => MemoryFileSystem(),
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 
-  testUsingContext('executablePathForDevice uses the correct package executable', () async {
+  testUsingContext('LinuxDevice.executablePathForDevice uses the correct package executable', () async {
     final MockLinuxApp mockApp = MockLinuxApp();
     const String debugPath = 'debug/executable';
     const String profilePath = 'profile/executable';
@@ -76,6 +76,7 @@
     expect(LinuxDevice().executablePathForDevice(mockApp, BuildMode.release), releasePath);
   }, overrides: <Type, Generator>{
     FileSystem: () => MemoryFileSystem(),
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 }
 
diff --git a/packages/flutter_tools/test/general.shard/macos/cocoapods_test.dart b/packages/flutter_tools/test/general.shard/macos/cocoapods_test.dart
index 57ca558..f4079cd 100644
--- a/packages/flutter_tools/test/general.shard/macos/cocoapods_test.dart
+++ b/packages/flutter_tools/test/general.shard/macos/cocoapods_test.dart
@@ -166,9 +166,9 @@
       pretendPodVersionIs('1.8.0');
       expect(await cocoaPodsUnderTest.isCocoaPodsInitialized, isTrue);
     }, overrides: <Type, Generator>{
-      ProcessManager: () => mockProcessManager,
       Platform: () => FakePlatform(),
       FileSystem: () => fs,
+      ProcessManager: () => mockProcessManager,
     });
   });
 
@@ -179,6 +179,7 @@
       expect(projectUnderTest.ios.podfile.readAsStringSync(), 'Objective-C iOS podfile template');
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('creates swift Podfile if swift', () async {
@@ -194,6 +195,7 @@
       expect(projectUnderTest.ios.podfile.readAsStringSync(), 'Swift iOS podfile template');
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       XcodeProjectInterpreter: () => mockXcodeProjectInterpreter,
     });
 
@@ -204,6 +206,7 @@
       expect(projectUnderTest.macos.podfile.readAsStringSync(), 'macOS podfile template');
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('does not recreate Podfile when already present', () async {
@@ -215,6 +218,7 @@
       expect(projectUnderTest.ios.podfile.readAsStringSync(), 'Existing Podfile');
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('does not create Podfile when we cannot interpret Xcode projects', () async {
@@ -226,6 +230,7 @@
       expect(projectUnderTest.ios.podfile.existsSync(), false);
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       XcodeProjectInterpreter: () => mockXcodeProjectInterpreter,
     });
 
@@ -251,6 +256,7 @@
       expect(releaseContents, contains('Existing release config'));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 
@@ -279,6 +285,7 @@
       expect(releaseContents, contains('Existing release config'));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 
diff --git a/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart b/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart
index 56f307d..36f43ba 100644
--- a/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart
+++ b/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart
@@ -56,6 +56,7 @@
       expect(MacOSDevice().isSupportedForProject(flutterProject), true);
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('isSupportedForProject is false with no host app', () async {
@@ -66,6 +67,7 @@
       expect(MacOSDevice().isSupportedForProject(flutterProject), false);
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('executablePathForDevice uses the correct package executable', () async {
@@ -82,6 +84,7 @@
       expect(MacOSDevice().executablePathForDevice(mockApp, BuildMode.release), releasePath);
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 }
diff --git a/packages/flutter_tools/test/general.shard/package_uri_mapper_test.dart b/packages/flutter_tools/test/general.shard/package_uri_mapper_test.dart
index 7300b1b..18516c0 100644
--- a/packages/flutter_tools/test/general.shard/package_uri_mapper_test.dart
+++ b/packages/flutter_tools/test/general.shard/package_uri_mapper_test.dart
@@ -40,6 +40,7 @@
         'package:example/main.dart');
   }, overrides: <Type, Generator>{
     FileSystem: () => mockFileSystem,
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 
   testUsingContext('single-root maps file from other package to null', () async {
@@ -47,6 +48,7 @@
     expect(packageUriMapper.map('/xml/lib/xml.dart'), null);
   }, overrides: <Type, Generator>{
     FileSystem: () => mockFileSystem,
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 
   testUsingContext('single-root maps non-main file from same package', () async {
@@ -55,6 +57,7 @@
         'package:example/src/foo.dart');
   }, overrides: <Type, Generator>{
     FileSystem: () => mockFileSystem,
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 
   testUsingContext('multi-root maps main file from same package on multiroot scheme', () async {
@@ -73,6 +76,7 @@
         'package:example/main.dart');
   }, overrides: <Type, Generator>{
     FileSystem: () => mockFileSystem,
+    ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
   });
 }
 
diff --git a/packages/flutter_tools/test/general.shard/plugins_test.dart b/packages/flutter_tools/test/general.shard/plugins_test.dart
index 073fee4..270b316 100644
--- a/packages/flutter_tools/test/general.shard/plugins_test.dart
+++ b/packages/flutter_tools/test/general.shard/plugins_test.dart
@@ -75,6 +75,7 @@
       expect(flutterProject.flutterPluginsFile.existsSync(), false);
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Refreshing the plugin list deletes the plugin file when there were plugins but no longer are', () {
@@ -85,6 +86,7 @@
       expect(flutterProject.flutterPluginsFile.existsSync(), false);
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Refreshing the plugin list creates a plugin directory when there are plugins', () {
@@ -95,6 +97,7 @@
       expect(flutterProject.flutterPluginsFile.existsSync(), true);
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Changes to the plugin list invalidates the Cocoapod lockfiles', () {
@@ -108,6 +111,7 @@
       expect(macosProject.podManifestLock.existsSync(), false);
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 
@@ -157,6 +161,7 @@
       expect(registrant.readAsStringSync(), contains('class GeneratedPluginRegistrant'));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FeatureFlags: () => featureFlags,
     });
 
@@ -182,6 +187,7 @@
       expect(registrant.readAsStringSync(), contains('class GeneratedPluginRegistrant'));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FeatureFlags: () => featureFlags,
     });
 
@@ -278,6 +284,7 @@
 
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FeatureFlags: () => featureFlags,
       XcodeProjectInterpreter: () => xcodeProjectInterpreter,
     });
@@ -304,6 +311,7 @@
       expect(registrant.readAsStringSync(), contains('class GeneratedPluginRegistrant'));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FeatureFlags: () => featureFlags,
     });
 
@@ -322,6 +330,7 @@
       expect(registrant.readAsStringSync(), contains('class GeneratedPluginRegistrant'));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FeatureFlags: () => featureFlags,
     });
 
@@ -347,6 +356,7 @@
       expect(registrant.readAsStringSync(), contains('class GeneratedPluginRegistrant'));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FeatureFlags: () => featureFlags,
     });
 
@@ -372,6 +382,7 @@
       expect(registrant.readAsStringSync(), contains('class GeneratedPluginRegistrant'));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       FeatureFlags: () => featureFlags,
     });
   });
diff --git a/packages/flutter_tools/test/general.shard/project_file_invalidator_test.dart b/packages/flutter_tools/test/general.shard/project_file_invalidator_test.dart
index b5c8c02..27e69b8 100644
--- a/packages/flutter_tools/test/general.shard/project_file_invalidator_test.dart
+++ b/packages/flutter_tools/test/general.shard/project_file_invalidator_test.dart
@@ -9,33 +9,48 @@
 import '../src/common.dart';
 import '../src/context.dart';
 
+// assumption: tests have a timeout less than 100 days
+final DateTime inFuture = DateTime.now().add(const Duration(days: 100));
+
 void main() {
   group('ProjectFileInvalidator', () {
-    final MemoryFileSystem memoryFileSystem = MemoryFileSystem();
     testUsingContext('No last compile', () async {
       expect(
-        ProjectFileInvalidator.findInvalidated(lastCompiled: null, urisToMonitor: <Uri>[], packagesPath: ''),
-        isEmpty);
+        ProjectFileInvalidator.findInvalidated(
+          lastCompiled: null,
+          urisToMonitor: <Uri>[],
+          packagesPath: '',
+        ),
+        isEmpty,
+      );
     });
 
     testUsingContext('Empty project', () async {
       expect(
-        ProjectFileInvalidator.findInvalidated(lastCompiled: DateTime.now(), urisToMonitor: <Uri>[], packagesPath: ''),
-        isEmpty);
+        ProjectFileInvalidator.findInvalidated(
+          lastCompiled: inFuture,
+          urisToMonitor: <Uri>[],
+          packagesPath: '',
+        ),
+        isEmpty,
+      );
     }, overrides: <Type, Generator>{
-      FileSystem: () => memoryFileSystem,
+      FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('Non-existent files are ignored', () async {
       expect(
         ProjectFileInvalidator.findInvalidated(
-            lastCompiled: DateTime.now(),
-            urisToMonitor: <Uri>[Uri.parse('/not-there-anymore'),],
-            packagesPath: '',
-          ),
-        isEmpty);
+          lastCompiled: inFuture,
+          urisToMonitor: <Uri>[Uri.parse('/not-there-anymore'),],
+          packagesPath: '',
+        ),
+        isEmpty,
+      );
     }, overrides: <Type, Generator>{
-      FileSystem: () => memoryFileSystem,
+      FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 }
diff --git a/packages/flutter_tools/test/general.shard/project_test.dart b/packages/flutter_tools/test/general.shard/project_test.dart
index a34f35c..676b78d 100644
--- a/packages/flutter_tools/test/general.shard/project_test.dart
+++ b/packages/flutter_tools/test/general.shard/project_test.dart
@@ -196,6 +196,7 @@
         expectExists(project.macos.managedDirectory.childFile('GeneratedPluginRegistrant.swift'));
       }, overrides: <Type, Generator>{
         FileSystem: () => MemoryFileSystem(),
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
         FlutterProjectFactory: () => FlutterProjectFactory(),
       });
@@ -206,6 +207,7 @@
         expectExists(project.macos.generatedXcodePropertiesFile);
       }, overrides: <Type, Generator>{
         FileSystem: () => MemoryFileSystem(),
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
         FlutterProjectFactory: () => FlutterProjectFactory(),
       });
@@ -217,6 +219,7 @@
         expectExists(project.linux.managedDirectory.childFile('generated_plugin_registrant.cc'));
       }, overrides: <Type, Generator>{
         FileSystem: () => MemoryFileSystem(),
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         FeatureFlags: () => TestFeatureFlags(isLinuxEnabled: true),
         FlutterProjectFactory: () => FlutterProjectFactory(),
       });
@@ -228,6 +231,7 @@
         expectExists(project.windows.managedDirectory.childFile('generated_plugin_registrant.cc'));
       }, overrides: <Type, Generator>{
         FileSystem: () => MemoryFileSystem(),
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         FeatureFlags: () => TestFeatureFlags(isWindowsEnabled: true),
         FlutterProjectFactory: () => FlutterProjectFactory(),
       });
@@ -324,6 +328,7 @@
         expect(project.android.isKotlin, isTrue);
       }, overrides: <Type, Generator>{
         FileSystem: () => fs,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         XcodeProjectInterpreter: () => mockXcodeProjectInterpreter,
         FlutterProjectFactory: () => flutterProjectFactory,
       });
@@ -344,6 +349,7 @@
       void testWithMocks(String description, Future<void> testMethod()) {
         testUsingContext(description, testMethod, overrides: <Type, Generator>{
           FileSystem: () => fs,
+          ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
           PlistParser: () => mockPlistUtils,
           XcodeProjectInterpreter: () => mockXcodeProjectInterpreter,
           FlutterProjectFactory: () => flutterProjectFactory,
@@ -606,6 +612,7 @@
     testMethod,
     overrides: <Type, Generator>{
       FileSystem: () => testFileSystem,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       Cache: () => Cache(),
       FlutterProjectFactory: () => flutterProjectFactory,
     },
diff --git a/packages/flutter_tools/test/general.shard/runner/flutter_command_runner_test.dart b/packages/flutter_tools/test/general.shard/runner/flutter_command_runner_test.dart
index 50df260..3d821eb 100644
--- a/packages/flutter_tools/test/general.shard/runner/flutter_command_runner_test.dart
+++ b/packages/flutter_tools/test/general.shard/runner/flutter_command_runner_test.dart
@@ -67,6 +67,7 @@
         expect(versionChecked, isTrue);
       }, overrides: <Type, Generator>{
         FileSystem: () => fs,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Platform: () => platform,
       }, initializeFlutterRoot: false);
 
@@ -78,6 +79,7 @@
 
       }, overrides: <Type, Generator>{
         FileSystem: () => fs,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Platform: () => platform,
       }, initializeFlutterRoot: false);
 
@@ -93,6 +95,7 @@
         await runner.run(<String>['dummy', '--local-engine=ios_debug']);
       }, overrides: <Type, Generator>{
         FileSystem: () => fs,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Platform: () => platform,
       }, initializeFlutterRoot: false);
 
@@ -102,6 +105,7 @@
         await runner.run(<String>['dummy', '--local-engine-src-path=$_kArbitraryEngineRoot/src', '--local-engine=ios_debug']);
       }, overrides: <Type, Generator>{
         FileSystem: () => fs,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Platform: () => platform,
       }, initializeFlutterRoot: false);
 
@@ -111,6 +115,7 @@
         await runner.run(<String>['dummy', '--local-engine=ios_debug']);
       }, overrides: <Type, Generator>{
         FileSystem: () => fs,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Platform: () => platform,
       }, initializeFlutterRoot: false);
     });
@@ -125,6 +130,7 @@
 
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       Platform: () => platform,
     }, initializeFlutterRoot: false);
 
@@ -153,8 +159,8 @@
         expect(version.toJson()['frameworkVersion'], '0.10.3');
       }, overrides: <Type, Generator>{
         FileSystem: () => fs,
-        Platform: () => platform,
         ProcessManager: () => processManager,
+        Platform: () => platform,
       }, initializeFlutterRoot: false);
     });
 
@@ -182,48 +188,53 @@
         ]);
       }, overrides: <Type, Generator>{
         FileSystem: () => fs,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Platform: () => platform,
       }, initializeFlutterRoot: false);
     });
 
     group('wrapping', () {
       testUsingContext('checks that output wrapping is turned on when writing to a terminal', () async {
-        final FakeCommand fakeCommand = FakeCommand();
+        final FakeFlutterCommand fakeCommand = FakeFlutterCommand();
         runner.addCommand(fakeCommand);
         await runner.run(<String>['fake']);
         expect(fakeCommand.preferences.wrapText, isTrue);
       }, overrides: <Type, Generator>{
         FileSystem: () => fs,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Stdio: () => FakeStdio(hasFakeTerminal: true),
       }, initializeFlutterRoot: false);
 
       testUsingContext('checks that output wrapping is turned off when not writing to a terminal', () async {
-        final FakeCommand fakeCommand = FakeCommand();
+        final FakeFlutterCommand fakeCommand = FakeFlutterCommand();
         runner.addCommand(fakeCommand);
         await runner.run(<String>['fake']);
         expect(fakeCommand.preferences.wrapText, isFalse);
       }, overrides: <Type, Generator>{
         FileSystem: () => fs,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Stdio: () => FakeStdio(hasFakeTerminal: false),
       }, initializeFlutterRoot: false);
 
       testUsingContext('checks that output wrapping is turned off when set on the command line and writing to a terminal', () async {
-        final FakeCommand fakeCommand = FakeCommand();
+        final FakeFlutterCommand fakeCommand = FakeFlutterCommand();
         runner.addCommand(fakeCommand);
         await runner.run(<String>['--no-wrap', 'fake']);
         expect(fakeCommand.preferences.wrapText, isFalse);
       }, overrides: <Type, Generator>{
         FileSystem: () => fs,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Stdio: () => FakeStdio(hasFakeTerminal: true),
       }, initializeFlutterRoot: false);
 
       testUsingContext('checks that output wrapping is turned on when set on the command line, but not writing to a terminal', () async {
-        final FakeCommand fakeCommand = FakeCommand();
+        final FakeFlutterCommand fakeCommand = FakeFlutterCommand();
         runner.addCommand(fakeCommand);
         await runner.run(<String>['--wrap', 'fake']);
         expect(fakeCommand.preferences.wrapText, isTrue);
       }, overrides: <Type, Generator>{
         FileSystem: () => fs,
+        ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
         Stdio: () => FakeStdio(hasFakeTerminal: false),
       }, initializeFlutterRoot: false);
     });
@@ -236,7 +247,7 @@
   String get frameworkVersion => '0.10.3';
 }
 
-class FakeCommand extends FlutterCommand {
+class FakeFlutterCommand extends FlutterCommand {
   OutputPreferences preferences;
 
   @override
diff --git a/packages/flutter_tools/test/general.shard/runner/runner_test.dart b/packages/flutter_tools/test/general.shard/runner/runner_test.dart
index c0a4c51..b9a0b87 100644
--- a/packages/flutter_tools/test/general.shard/runner/runner_test.dart
+++ b/packages/flutter_tools/test/general.shard/runner/runner_test.dart
@@ -71,6 +71,7 @@
         'FLUTTER_ROOT': '/',
       }),
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
       Usage: () => CrashingUsage(),
     });
   });
diff --git a/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart b/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart
index a2329df..d5fd68f 100644
--- a/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart
+++ b/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart
@@ -39,6 +39,7 @@
       expect(app.packagesFile.path, fs.path.join(projectPath, '.packages'));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 
@@ -108,8 +109,8 @@
       final Map<Type, Generator> startOverrides = <Type, Generator>{
         Platform: () => FakePlatform(operatingSystem: 'linux'),
         FileSystem: () => fs,
-        Cache: () => Cache(rootOverride: fs.directory(flutterRoot)),
         ProcessManager: () => mockProcessManager,
+        Cache: () => Cache(rootOverride: fs.directory(flutterRoot)),
         KernelCompilerFactory: () => FakeKernelCompilerFactory(mockKernelCompiler),
         Artifacts: () => mockArtifacts,
       };
diff --git a/packages/flutter_tools/test/general.shard/windows/visual_studio_test.dart b/packages/flutter_tools/test/general.shard/windows/visual_studio_test.dart
index fa88700..5a9b7e4 100644
--- a/packages/flutter_tools/test/general.shard/windows/visual_studio_test.dart
+++ b/packages/flutter_tools/test/general.shard/windows/visual_studio_test.dart
@@ -138,8 +138,8 @@
       expect(visualStudio.isInstalled, false);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('vcvarsPath returns null when vswhere is missing', () {
@@ -153,8 +153,8 @@
       expect(visualStudio.vcvarsPath, isNull);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('isInstalled returns false when vswhere returns non-zero', () {
@@ -181,8 +181,8 @@
       expect(visualStudio.isInstalled, false);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('VisualStudio getters return the right values if no installation is found', () {
@@ -202,8 +202,8 @@
       expect(visualStudio.fullVersion, null);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('necessaryComponentDescriptions suggest the right VS tools on major version 15', () {
@@ -213,8 +213,8 @@
       expect(toolsString.contains('v141'), true);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('necessaryComponentDescriptions suggest the right VS tools on major version != 15', () {
@@ -224,8 +224,8 @@
       expect(toolsString.contains('v142'), true);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('isInstalled returns true even with missing status information', () {
@@ -237,8 +237,8 @@
       expect(visualStudio.isInstalled, true);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('isInstalled returns true when VS is present but missing components', () {
@@ -250,8 +250,8 @@
       expect(visualStudio.isInstalled, true);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('isInstalled returns true when a prerelease version of VS is present', () {
@@ -267,8 +267,8 @@
       expect(visualStudio.isPrerelease, true);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('isComplete returns false when an incomplete installation is found', () {
@@ -284,8 +284,8 @@
       expect(visualStudio.isComplete, false);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('isLaunchable returns false if the installation can\'t be launched', () {
@@ -301,8 +301,8 @@
       expect(visualStudio.isLaunchable, false);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('isRebootRequired returns true if the installation needs a reboot', () {
@@ -318,8 +318,8 @@
       expect(visualStudio.isRebootRequired, true);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
 
@@ -332,8 +332,8 @@
       expect(visualStudio.hasNecessaryComponents, false);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('vcvarsPath returns null when VS is present but missing components', () {
@@ -345,8 +345,8 @@
       expect(visualStudio.vcvarsPath, isNull);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('vcvarsPath returns null when VS is present but with require components but installation is faulty', () {
@@ -359,8 +359,8 @@
       expect(visualStudio.vcvarsPath, isNull);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('hasNecessaryComponents returns false when VS is present with required components but installation is faulty', () {
@@ -373,8 +373,8 @@
       expect(visualStudio.hasNecessaryComponents, false);
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('VS metadata is available when VS is present, even if missing components', () {
@@ -389,8 +389,8 @@
       expect(visualStudio.fullVersion, equals('16.2.29306.81'));
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('Everything returns good values when VS is present with all components', () {
@@ -404,8 +404,8 @@
       expect(visualStudio.vcvarsPath, equals(vcvarsPath));
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
 
     testUsingContext('Metadata is for compatible version when latest is missing components', () {
@@ -437,8 +437,8 @@
       expect(visualStudio.displayVersion, equals('15.9.12'));
     }, overrides: <Type, Generator>{
       FileSystem: () => memoryFilesystem,
-      Platform: () => windowsPlatform,
       ProcessManager: () => mockProcessManager,
+      Platform: () => windowsPlatform,
     });
   });
 }
diff --git a/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart b/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart
index 0a3023c..236b723 100644
--- a/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart
+++ b/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart
@@ -49,6 +49,7 @@
       expect(WindowsDevice().isSupportedForProject(flutterProject), true);
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('isSupportedForProject is false with no host app', () async {
@@ -59,6 +60,7 @@
       expect(WindowsDevice().isSupportedForProject(flutterProject), false);
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
 
     testUsingContext('executablePathForDevice uses the correct package executable', () async {
@@ -75,6 +77,7 @@
       expect(WindowsDevice().executablePathForDevice(mockApp, BuildMode.release), releasePath);
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
+      ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
     });
   });
 }