Intereting Posts
Как читать несколько кодов qr с одного изображения с помощью библиотеки zxing Перетаскивание RecyclerView, которое заполняется из SQLiteDatabase Proguard говорит мне: «Пожалуйста, сначала исправьте приведенные выше предупреждения». Как обращаться к ссылкам внешних банок? Воспроизведение произвольного тона с Android Android SDK Manager не обновляет версию инструментов сборки SDK 18.1.1 Как правильно запустить ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS? Android Get Application 'Home' Data Directory Тестирование Android AsyncTask с помощью Android Test Framework Изменить макет или активность фрагмента (?) С помощью навигационного ящика Настраиваемый предупреждающий диалог, получающий нежелательное дополнение Не удалось разрешить хост «<url here>»; Нет адреса, связанного с именем хоста Журнал ошибок чтения Android из телефонной трубки Разница между foo.setVisibility (View.GONE) и parent.removeView (foo) Offline maps SDK для Android и iOS Android ListView child View setEnabled () и setClickable () ничего не делают

Исходный ресурс для тестирования 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 !!!!