I have written a simple test case class and placed it in the default test directory for Android Studio: "src/androidTest". I've created an Android Tests build configuration that looks for all Tests in the module. When I run the build configuration, my test does not execute and I get the following message in logcat: W/TestGrouping﹕ Invalid Package: '' could not be found or has no tests
. If I specify the test package or even the specific test class, I get similar class not found messages.
My test class is as follows:
public class FirstTest extends InstrumentationTestCase {
public void testSample() {
final int expected = 1;
final int reality = 5;
assertEquals(expected, reality);
}
}
My build.gradle file looks like this:
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:gridlayout-v7:19.0.1'
compile 'com.android.support:support-v4:19.0.1'
compile 'com.android.support:appcompat-v7:19.0.1'
compile fileTree(dir: 'libs', include: ['*.jar'])
}
I'm running version 0.9 of the android gradle plugin. My top level build.gradle (a peer to the app directory) looks like this.
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
allprojects {
repositories {
mavenCentral()
}
}
My project directory structure is as follows:
app
src
androidTest
java
main
java
res
If you are going to run tests from androidTest folder, you should choose configuration under Android Instrumented Test, and not the junit.
Run(Top tool window) / Edit configurations...
The package structure under the androidTest/java directory needs to exactly parallel the structure under the main/java directory.
My problem above was that the package structure under main was com.mydomain.myapp.subpackage
and the directory structure under androidTest was com.mydomain.myapp.subpackage.somethingelse
.
Once the package structures matched, the tests were discovered and executed flawlessly.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With