12

In Flutter end-to-end testing, a permission is to be allowed during the test. driver.tap(find.text("ALLOW") does not work. How to click "ALLOW".

enter image description here

Kyaw Tun
  • 10,164
  • 7
  • 44
  • 72

1 Answers1

14

You can grant the permissions before running the test.

import 'dart:io';
import 'package:path/path.dart';

// ...

setUpAll(() async {
  final envVars = Platform.environment;
  final adbPath = join(
    envVars['ANDROID_SDK_ROOT'] ?? envVars['ANDROID_HOME'],
    'platform-tools',
    Platform.isWindows ? 'adb.exe' : 'adb',
  );
  await Process.run(adbPath, [
    'shell',
    'pm',
    'grant',
    'com.example.yourapp', // replace with your app id
    'android.permission.RECORD_AUDIO'
  ]);
  driver = await FlutterDriver.connect();
});
apaatsio
  • 1,778
  • 1
  • 16
  • 17