Android Studio Instrumentation testing build varia

2019-03-23 02:52发布

问题:

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: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Testing

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