Sarah Caixeta
Sarah Caixeta

Reputation: 31

Android test cannot find source class

I'm trying to configure a android app to run tests with robolectric. I'm new to gradle, and I can't find out what the problem is.

When I run ./gradlew robolectric on the command line, I get a cannot find symbol error.

The error I get is:

MainActivityTest.java:18: error: cannot find symbol
        Robolectric.buildActivity(MainActivity.class).get().getResources();
                                  ^
  symbol:   class MainActivity
  location: class MainActivityTest

This is my build.gradle file:

apply plugin: 'com.android.application'
apply plugin: 'robolectric'

android {
    compileSdkVersion 20
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "com.app.id"
        minSdkVersion 16
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        abortOnError false
    }
    sourceSets{
        main.setRoot('src/main')
        androidTest.setRoot('src/test')
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    androidTestCompile 'org.robolectric:robolectric:2.3'
    androidTestCompile 'junit:junit:4.11'
}

So, the problem seems to be that I cannot access the source file when I run the tests, but I couldn't find a way to fix it.

Can anyone tell me what i'm doing wrong? Thanks!

Upvotes: 2

Views: 2382

Answers (1)

kidnan1991
kidnan1991

Reputation: 366

main.setRoot('src/main') => Is it really a main folder / package in your project?   

You can test again by using the fully file directory, ex: src/helloword/mainActivity.java

Upvotes: 2

Related Questions