Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TestCase class not found by Android Studio

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

like image 946
joates Avatar asked Mar 07 '14 04:03

joates


2 Answers

You need to check "run" configuration.

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...

enter image description here

like image 100
Максим Петлюк Avatar answered Nov 07 '22 08:11

Максим Петлюк


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.

like image 30
joates Avatar answered Nov 07 '22 07:11

joates