Setting a custom assets directory for unit testing in Android Studio

后端 未结 4 1500
野的像风
野的像风 2021-02-02 08:24

We have the not uncommon requirement of executing unit tests of our Android application which make use of assets which are only required for unit testing.

With the Eclip

4条回答
  •  盖世英雄少女心
    2021-02-02 08:34

    I've stumbled upon an answer for my own question, for which I scored the coveted "Tumbleweed" award reserved for questions that inspire a particularly notable lack of interest. Never-the-less it may prove useful to someone.

    In the end I'm going to describe this as a bug in Android's gradle build but in the absence of any conclusive documentation that's going to have to remain an opinion.

    It would appear that "androidTest/assets" just doesn't work. However "debug/assets" does. So does "debug/java" incidentally so the solution is to put any and all testing resources and code into the debug root, with the exception of the unit tests themselves.

    I also added the following modifications to my build.gradle:

        androidTest {
            assets.srcDirs = ['src/main/assets', 'src/androidTest/assets/', 'src/debug/assets/']
            java.srcDirs = ['src/main/java', 'src/androidTest/java', 'src/debug/java']
        }
    

    And now I have functioning unit tests employing assets and mocks that are unknown to the release build.

提交回复
热议问题