Android Studio Instrumentation testing build variant

10,848

Solution 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"
}

Solution 2

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 

Solution 3

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

Share:
10,848
MrEngineer13
Author by

MrEngineer13

Android developer who likes doing things and stuff. If you need any Android development you can find us at MoFiStudios.com.

Updated on June 19, 2022

Comments

  • MrEngineer13
    MrEngineer13 about 2 years

    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.

    Build Variants

    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.