Android test raw resource

 ̄綄美尐妖づ 提交于 2019-12-18 13:53:10

问题


I have the following folder structure in Android Studio:

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

I'm trying to access the test_file resource which exists in the raw folder of the androidTest elements. Here's the code inside a Robotium test case that inherits from ActivityInstrumentationTestCase2:

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

Android Studio throws a reference error since the resource cannot be found. The exact error is "Cannot resolve symbol test_file".

How can I reference this resource form a test case, which exists on the androidTest resources bundle?


回答1:


By default your androidTest project will include your app's R class, but androidTest's resources will be generated into a separate file. Make sure you import the R class from your test project:

import com.your.package.test.R;

[..]

getInstrumentation().getContext().getResources().openRawResource(R.raw.test_file);

You can also directly reference the test project's R class:

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



回答2:


I had the androidTest resources in the right spot (src/androidTest/res) and I still couldn't access them via <normal.package>.test.R. I spent a lot of time googling trying to figure out what was going on..

I FINALLY stumbled onto the answer. If you're building a buildType where you specified an applicationIdSuffix, your files are at <applicationId><applicationIdSuffix>.test.R !!!!

i.e.

applicationId "com.example.my.app"

buildTypes {
    debug {
        applicationIdSuffix ".debug"
    }
}

if you have androidTest resources in the right directory, then you can only access them via com.example.my.app.debug.test.R !!!!



来源:https://stackoverflow.com/questions/32187233/android-test-raw-resource

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!