diff --git a/dev/bots/test.dart b/dev/bots/test.dart
index cc5b607..2ac702a 100644
--- a/dev/bots/test.dart
+++ b/dev/bots/test.dart
@@ -56,8 +56,6 @@
 /// configuration) -- prefilled with the arguments passed to test.dart.
 final List<String> flutterTestArgs = <String>[];
 
-final Map<String, String> localEngineEnv = <String, String>{};
-
 final bool useFlutterTestFormatter = Platform.environment['FLUTTER_TEST_FORMATTER'] == 'true';
 
 
@@ -107,13 +105,6 @@
   print('$clock STARTING ANALYSIS');
   try {
     flutterTestArgs.addAll(args);
-    for (final String arg in args) {
-      if (arg.startsWith('--local-engine='))
-        localEngineEnv['FLUTTER_LOCAL_ENGINE'] = arg.substring('--local-engine='.length);
-      if (arg.startsWith('--local-engine-src-path='))
-        localEngineEnv['FLUTTER_LOCAL_ENGINE_SRC_PATH'] = arg.substring('--local-engine-src-path='.length);
-    }
-
     if (Platform.environment.containsKey(CIRRUS_TASK_NAME))
       print('Running task: ${Platform.environment[CIRRUS_TASK_NAME]}');
     print('═' * 80);
@@ -1240,7 +1231,6 @@
   ];
   final Map<String, String> pubEnvironment = <String, String>{
     'FLUTTER_ROOT': flutterRoot,
-    ...localEngineEnv
   };
   if (Directory(pubCache).existsSync()) {
     pubEnvironment['PUB_CACHE'] = pubCache;
