Невозможно сохранить скриншоты Espresso Failure на устройствах android 10 - PullRequest
2 голосов
/ 21 апреля 2020

Поскольку улучшенная конфиденциальность изменяется на Android 10 Android 10 Изменения конфиденциальности , я заметил, что мое правило отслеживания ошибок скриншотов в Kotlin, которое расширяет Espresso BasicScreenCaptureProcessor, больше не сохраняет скриншоты с ошибками, потому что я использую устаревшую getExternalStoragePublicDirectory на Android 10.

В настоящее время реализуемая концепция очень похожа на Как сделать снимок экрана в точке, когда тест не пройден в Espresso?

class TestScreenCaptureProcessor : BasicScreenCaptureProcessor() {
    init {
        this.mDefaultScreenshotPath = File(
            File(
                Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
                "Failure_Screenshots"
            ).absolutePath
        )
    }

Как видно из других постов, я мог бы использовать getInstrumentation().getTargetContext().getApplicationContext().getExternalFilesDir(DIRECTORY_PICTURES)

, который бы сохранял файл в каталоге - /sdcard/Android/data/your.package.name/files/Pictures, но задача connectedAndroidTest gradle удаляет приложение в конце, вместе с ним, перечисленные выше папки.

Мне было интересно, сталкивался ли кто-нибудь с чем-то подобным и рассматривал ли способ хранения скриншотов с ошибками на Android 10 в месте, которое не будет удалено когда тестирование закончится, и где-нибудь к нему могут получить доступ тесты Espresso Instrumentation

Мои тесты пользовательского интерфейса выполняются на различных устройствах, поэтому требуется универсальный c способ хранения файлов, необходимый для всех моделей.

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