Intereting Posts
Как получить текущую силу сигнала ячейки? Как установить высоту ширины изображения на основе размера экрана в gridview Как поместить несколько размеров виджетов в один apk? Создание цифрового виджета с пользовательским шрифтом Общение с последовательным USB-устройством через Android Проверка на редактирование текста Этот класс обработчика должен быть статическим или может возникнуть утечка: IncomingHandler Неверные теги формата HTML в диалоге Отключить звук нажатия кнопки в android Что такое "Android SDK Tools", "Android SDK Platform Tools" и "Android SDK Build Tools"? Android: Howto получить идентификатор ресурса ресурса android LinearLayout achartengine Диаграмма не отображается в ScrollView Как запустить приложение meteor на устройстве Android? При проверке флажка в списке также проверяются другие случайные флажки Что произойдет, если я использую один и тот же идентификатор для нескольких виджетов в разных макетах?

Исходный ресурс для тестирования Android

У меня есть следующая структура папок в Android Studio:

├── androidTest │  ├── java │  └── res │  └── raw │  └── test_file └── main ├── java └── res └── raw   └── app_file 

Я пытаюсь получить доступ к test_file который существует в исходной папке элементов androidTest. Вот код внутри тестового примера Robotium, который наследуется от ActivityInstrumentationTestCase2 :

 InputStream is = this.getInstrumentation() .getContext() .getResources() .openRawResource(R.raw.test_file); 

Android Studio выбрасывает опорную ошибку, так как ресурс не найден. Точная ошибка: «Не удается разрешить файл test_file».

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

Solutions Collecting From Web of "Исходный ресурс для тестирования Android"

По умолчанию ваш проект androidTest будет включать в себя класс R вашего приложения, но ресурсы androidTest будут сгенерированы в отдельный файл. Убедитесь, что вы импортируете класс R из своего тестового проекта:

 import com.your.package.test.R; [..] getInstrumentation().getContext().getResources().openRawResource(R.raw.test_file); 

Вы также можете напрямую ссылаться на R-класс тестового проекта:

 getInstrumentation().getContext().getResources().openRawResource(com.your.package.test.R.raw.test_file); 

У меня были ресурсы androidTest в нужном месте ( src/androidTest/res ), и я до сих пор не мог получить к ним доступ через <normal.package>.test.R . Я потратил много времени на поиски в Google, пытаясь выяснить, что происходит.

Я окончательно наткнулся на ответ. Если вы строите buildType где вы указали applicationIdSuffix , ваши файлы находятся в <applicationId><applicationIdSuffix>.test.R !!!!

т.е.

 applicationId "com.example.my.app" buildTypes { debug { applicationIdSuffix ".debug" } } 

Если у вас есть ресурсы androidTest в правильном каталоге, вы можете получить к ним доступ только через com.example.my.app.debug.test.R !!!!