내 테스트에서 스크린 샷을 페이스 북의 라이브러리를 사용하여 다음 비교 Karumi의 슛 플러그인 (https://github.com/karumi/shot)을 사용하고 있습니다 : API를 실행할 때 http://facebook.github.io/screenshot-tests-for-android/Facebook`s 스크린 샷 테스트보다 더 큰 23
이 라이브러리에 문제가 있습니다를 WRITE_EXTERNAL_STORAGE 권한이 필요하고 api 23 이후로 테스트 중에 사용 권한을 부여하는 것이 간단한 작업이 아니기 때문에 23보다 크다.
에스프레소 3.0에는 GrantPermissionRule이 추가되었으며이 기능을 사용하면 이전에 테스트 실행에 대한 권한을 쉽게 설정할 수 있습니다.
글쎄, 나는 규칙 추가 :
@Rule @JvmField
val grantPermissionRule: GrantPermissionRule = GrantPermissionRule.grant(android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
을 그리고 다음 코드를 사용하여 스크린 샷을했다 :
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)
}
하지만이 : 나는 실행되는 사용자 정의의 TestRunner가
Screenshot.snapActivity(activityTestRule.activity).record()
테스트를 실행하면 다음 오류가 표시됩니다.
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)