Android Studio Instrumentation testing build variant

扶醉桌前 提交于 2020-01-29 02:39:50

问题


So I am trying to write instrumentation tests using a custom build variant, mock. In this build variant I mocked up my classes and server. When I try using the mock build myself it works fine, but I can't seem to use my mock build for testing. Here's what my configuration looks like inside Android Studio.

I had some issues getting my tests to run so I tried to uninstall all versions of my app except my mock version and I keep getting this error:

Test running startedTest running failed: Unable to find instrumentation target package: com.teamtreehouse.review.debug

However when I try to run my tests against the debug build variant it works fine. It installs my debug version then proceeds to run the tests.


回答1:


You can do testing on a different build variant; but only on one. The default is debug.

See this: https://developer.android.com/studio/build/gradle-tips#change-the-test-build-type

Currently only one Build Type is tested. By default it is the debug Build Type, but this can be reconfigured with:

android {
    ...
    testBuildType "staging"
}



回答2:


AFAIK androidTest only works against the debug buildType.

You can use build flavours to do what you want, a good example can be found here: https://www.code-labs.io/codelabs/android-testing/#0




回答3:


Alternatively, you can configure your testBuildType as following way so that you can decide to run any build type of the androidTest specifying the respective property from command line.

android {   
    ...

    if (project.hasProperty('androidTestRelease')) {
        testBuildType 'release'
    } else if (project.hasProperty('androidTestStaging')) {
        testBuildType 'staging'
    } else {
        testBuildType 'debug'
    }
    ...
}

From command line

./gradlew connectedCheck -PandroidTestStaging 


来源:https://stackoverflow.com/questions/32484985/android-studio-instrumentation-testing-build-variant

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