문제

I'm writing my unit tests using gradle in Android Studio. I have the tests located in:

src/androidTest/java

That works just fine. Now in my tests I want to access a resource that is defined in:

src/androidTest/res

Specifically, I want to get src/androidTest/res/layout/mylayout.xml. The problem is the R class for my test package or any package for that matter has mylayout defined.

I did this on my build.gradle and it didn't make a difference:

sourceSets {
    androidTest.resources.srcDirs = ['src/res']
}

How do I supply resources to androidTest classes that is only visible to the androidTest?

도움이 되었습니까?

해결책 2

I found the solution, add this to your build.gradle file.

sourceSets {
    androidTest {
        java.srcDirs = ['src/androidTest/src']
        resources.srcDirs = ['src/androidTest/src']
    }
}

다른 팁

For me, the solution was to put the source files in src/androidTest/java and the resource files in src/androidTest/res. Those are the standard locations, so you don't need to edit anything in gradle.build.

Plus, rename your R import from

import com.mycompany.myappname.R;

to

import com.mycompany.myappname.test.R;

Source: Configuring res srcDirs for androidTest sourceSet

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top