Reputation: 38856
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.
Upvotes: 33
Views: 14917
Reputation: 1166
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"
}
Upvotes: 77
Reputation: 12583
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
Upvotes: 11
Reputation: 615
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
Upvotes: 7