Android Facebook的截图测试失败,api大于23
我正在使用Karumi的快照插件()从我的测试中截取屏幕快照,然后使用facebook的库进行比较: 使用大于23的api运行库时会出现问题,因为它需要WRITE_EXTERNAL_存储权限,而且由于api 23,在测试期间授予权限不是一项简单的任务 但是在espresso 3.0中添加了GrantPermissionRule,通过该规则,您可以轻松地在测试执行之前设置权限 好吧,我加了一条规则:Android Facebook的截图测试失败,api大于23,android,android-espresso,Android,Android Espresso,我正在使用Karumi的快照插件()从我的测试中截取屏幕快照,然后使用facebook的库进行比较: 使用大于23的api运行库时会出现问题,因为它需要WRITE_EXTERNAL_存储权限,而且由于api 23,在测试期间授予权限不是一项简单的任务 但是在espresso 3.0中添加了GrantPermissionRule,通过该规则,您可以轻松地在测试执行之前设置权限 好吧,我加了一条规则: @Rule @JvmField val grantPermissionRule: GrantPer
@Rule @JvmField
val grantPermissionRule: GrantPermissionRule = GrantPermissionRule.grant(android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
并用以下代码截图:
Screenshot.snapActivity(activityTestRule.activity).record()
我有一个自定义的TestRunner,它运行:
override fun onCreate(args: Bundle) {
super.onCreate(args)
ScreenshotRunner.onCreate(this, args)
}
override fun finish(resultCode: Int, results: Bundle) {
ScreenshotRunner.onDestroy()
super.finish(resultCode, results)
}
但当我执行测试时,我收到以下错误:
java.lang.RuntimeException: Failed to create the directory for screenshots. Is your sdcard directory read-only?
at com.facebook.testing.screenshot.internal.ScreenshotDirectories.getSdcardDir(ScreenshotDirectories.java:66)
插件无法在API>=23中保存屏幕截图,因为该权限必须在测试APK中授予,而不是在测试APK中授予。使用名为“授予权限测试规则”的规则不提供此功能。官方Facebook库不支持此功能,我们目前不支持此功能:( 我还在GitHub存储库中回答了您的问题