Как скопировать файлы в эмулятор Android для использования в инструментальных тестах? - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь запустить инструментальные юнит-тесты для Android Pie. Тест, который я создаю, проверит доступ к файлам расширения, доставленным через файлы расширения Play Store APK. В ручном тесте это работает, но это, ну, в общем, руководство.

Для запуска теста я помещаю файл в эмулятор:

adb push obb/main.45.org.example.someapp.obb /storage/emulated/0/Android/obb/org.example.someapp/main.45.org.example.someapp.obb

и запускать тесты с gradle connectedFreeDebugAndroidTest. Gradle компилирует все красиво и копирует APK в эмулятор. Однако, во время этого процесса, кажется, файл расширения также очищен от устройства:

> Task :app:connectedFreeDebugAndroidTest
01:18:05 V/ddms: execute: running am get-config
01:18:05 V/ddms: execute 'am get-config' on 'emulator-5554' : EOF hit. Read: -1
01:18:05 V/ddms: execute: returning
01:18:05 D/app-free-debug.apk: Uploading app-free-debug.apk onto device 'emulator-5554'
01:18:05 D/Device: Uploading file onto device 'emulator-5554'
01:18:05 D/ddms: Reading file permision of /tmp/gradle/someapp-android/app/outputs/apk/free/debug/app-free-debug.apk as: rw-r--r--
01:18:05 V/ddms: execute: running pm install -r -t "/data/local/tmp/app-free-debug.apk"
01:18:05 V/ddms: execute 'pm install -r -t "/data/local/tmp/app-free-debug.apk"' on 'emulator-5554' : EOF hit. Read: -1
01:18:05 V/ddms: execute: returning
01:18:05 V/ddms: execute: running rm "/data/local/tmp/app-free-debug.apk"
01:18:05 V/ddms: execute 'rm "/data/local/tmp/app-free-debug.apk"' on 'emulator-5554' : EOF hit. Read: -1
01:18:05 V/ddms: execute: returning
01:18:05 D/app-free-debug-androidTest.apk: Uploading app-free-debug-androidTest.apk onto device 'emulator-5554'
01:18:05 D/Device: Uploading file onto device 'emulator-5554'
01:18:05 D/ddms: Reading file permision of /tmp/gradle/someapp-android/app/outputs/apk/androidTest/free/debug/app-free-debug-androidTest.apk as: rw-r--r--
01:18:05 V/ddms: execute: running pm install -r -t "/data/local/tmp/app-free-debug-androidTest.apk"
01:18:06 V/ddms: execute 'pm install -r -t "/data/local/tmp/app-free-debug-androidTest.apk"' on 'emulator-5554' : EOF hit. Read: -1
01:18:06 V/ddms: execute: returning
01:18:06 V/ddms: execute: running rm "/data/local/tmp/app-free-debug-androidTest.apk"
01:18:06 V/ddms: execute 'rm "/data/local/tmp/app-free-debug-androidTest.apk"' on 'emulator-5554' : EOF hit. Read: -1
01:18:06 V/ddms: execute: returning
01:18:06 I/RemoteAndroidTest: Running am instrument -w -r   -e coverageFile /data/data/org.example.someapp/coverage.ec -e coverage true org.example.someapp.test/android.support.test.runner.AndroidJUnitRunner on Pixel_2_API_28_Android_Pie_(AVD) - 9
01:18:06 V/ddms: execute: running am instrument -w -r   -e coverageFile /data/data/org.example.someapp/coverage.ec -e coverage true org.example.someapp.test/android.support.test.runner.AndroidJUnitRunner
...
01:18:07 V/InstrumentationResultParser: Caused by: java.io.FileNotFoundException: /storage/emulated/0/Android/obb/org.example.someapp/main.45.org.example.someapp.obb: open failed: ENOENT (No such file or directory)

Как я могу убедиться, что этот файл существует при выполнении тестов?

...