Я пытаюсь установить в нашем приложении для Android screenshot-tests-for-android (v0.8.0) и получаю следующую ошибку:
java.lang.RuntimeException: Failed to create the directory /sdcard/screenshots/com.schibsted.peil.android.dev.test/screenshots-default for screenshots. Is your sdcard directory read-only?
at com.facebook.testing.screenshot.internal.ScreenshotDirectories.getSdcardDir(ScreenshotDirectories.java:121)
at com.facebook.testing.screenshot.internal.ScreenshotDirectories.get(ScreenshotDirectories.java:53)
at com.facebook.testing.screenshot.internal.AlbumImpl.<init>(AlbumImpl.java:44)
at com.facebook.testing.screenshot.internal.AlbumImpl.create(AlbumImpl.java:49)
at com.facebook.testing.screenshot.internal.ScreenshotImpl.create(ScreenshotImpl.java:66)
at com.facebook.testing.screenshot.internal.ScreenshotImpl.getInstance(ScreenshotImpl.java:84)
at com.facebook.testing.screenshot.Screenshot.snap(Screenshot.java:38)
at com.sample.myapp.ThirteenCardScreenshotTest.testScreenshot(ThirteenCardScreenshotTest.kt:24)
Кажется, что-то происходит с разрешениями для запуска инструментальных тестов, в моих приложениях AndroidManifest.xml
Я явно установил разрешение WRITE_EXTERNAL_STORAGE
, которое требуется библиотеке, но кажется, что оно недоступно в инструментальных тестах? или что-то еще?
Кто-нибудь имеет опыт работы с этой библиотекой? какие-либо предложения?
мой тест выглядит так:
package com.sample.myapp
import android.widget.LinearLayout
import androidx.test.InstrumentationRegistry
import com.facebook.testing.screenshot.Screenshot
import com.facebook.testing.screenshot.ViewHelpers
import com.sample.myapp.feed.FooterStoryViewHolder
import org.junit.Test
class ThirteenCardScreenshotTest {
@Test
fun testScreenshot() {
val context = InstrumentationRegistry.getInstrumentation().targetContext
val view = LinearLayout(context)
val viewHolder = FooterStoryViewHolder(view)
view.addView(viewHolder.itemView)
ViewHelpers.setupView(view)
.setExactWidthDp(360)
.setExactHeightDp(740)
.layout()
Screenshot.snap(view)
.record()
}
}
И обходной путь, предложенный в https://github.com/facebook/screenshot-tests-for-android/issues/162, не работает для меня