Проблемы с настройкой facebook screenshot-tests-for-android - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь установить в нашем приложении для 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, не работает для меня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...