最近在 Android R(Android 11)系统上执行以前写的Espresso UI(AndroidX)单元测试用例的时候,发现在 联想拯救者电竞手机Pro(128GB) 系统版本 12.5.225上,如果测试用例申请了通讯录写入权限,如下:
那么测试用例执行的时候,会报告如下错误:
详细的logcat日志如下:
目前测试发现,即使通过GrantPermissionRule授予权限,也是没用的,代码根本来不及执行,应用就一下被系统杀死了。
目前只能是不测试这部分功能。
在OPPO/VIVO/小米等手机上,需要手工开启 后台弹出界面权限 才能执行单元测试。有个思路是通过UI Automator来自动开启这个权限,暂时还需要测试一下。
参考链接
- No Network Security Config specified, using platform default
- No Network Security Config specified, using platform default - Android Log
- Android revoke permission at start of each test
- Permissions updates in Android 11
- Android revoke permission at start of each test
- Android Marshmallow: Test permissions with Espresso?
- AndroidTestMockPermissionUtils
- Android 权限适配 从此第三方系统新增的权限无法判断状态的问题得到解决! 如MIUI自启动, 后台弹出界面权限等
- 实战|Android后台启动Activity实践之路
- Espresso和UIAutomator - 完美的结合
- UI Automator