Android Studio无法识别Espresso导入

时间:2016-02-18 16:05:19

标签: android android-espresso

我正在尝试使用Espresso编写测试用例。

我使用的是Android Studio 1.5.1(稳定频道),Gradle插件1.5,Gradle 2.7。 问题是Android Studio无法识别任何与Espresso相关的导入(而不仅仅是enter image description here

所以,我尝试清理项目,重建,使缓存无效并重启,但没有。

我在我的app模块中添加了这些依赖项:

androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.android.support:support-annotations:23.1.1'
androidTestCompile 'com.android.support.test:runner:0.4.1'
androidTestCompile 'com.android.support.test:rules:0.4.1'

我在defaultConfig中添加了跑步者:

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

我在androidTest文件夹下创建了测试套件类:

enter image description here

我做错了什么?

更新

这是我的build.gradle的一部分:

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 5
        versionName '1.4'

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    buildTypes {
        //my build type configs
    }

    packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
    }

    lintOptions {
        disable 'InvalidPackage'
    }

    dexOptions {
        incremental true
        preDexLibraries = false
        jumboMode = false
        javaMaxHeapSize "2g"
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.viewpagerindicator:library:2.4.1'
    compile project(':libraries:RITracking')
    compile 'com.android.support:support-v4:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.android.support:support-annotations:23.1.1'
    compile 'com.android.support:recyclerview-v7:23.1.1'
    compile 'com.android.support:cardview-v7:23.1.1'
    compile 'com.android.support:gridlayout-v7:23.1.1'
    compile 'com.google.code.gson:gson:2.5'
    compile 'com.google.android.gms:play-services-plus:8.4.0'
    compile 'com.google.android.gms:play-services-base:8.4.0'
    compile 'de.greenrobot:eventbus:2.4.1'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.squareup.okhttp:okhttp:2.7.2'
    compile 'com.facebook.android:facebook-android-sdk:4.9.0'
    compile 'com.cocosw:bottomsheet:1.2.0@aar'                          //Bottom Sheet that implement material design used for ShareDialog
    compile 'com.github.bumptech.glide:glide:3.6.1'                     //Glide library
    compile 'com.googlecode.libphonenumber:libphonenumber:7.2.3'        //Library used to parse/merge phones number to E164 format
    compile 'me.leolin:ShortcutBadger:1.1.3@aar'                        //Used to show badge on application icon, library is optimized to work on most of devices
    compile 'com.stripe:stripe-android:1.0.3'                              //Stripe payment gateway, used to integrate credit card payment
    provided 'org.projectlombok:lombok:1.16.6'
    apt "org.projectlombok:lombok:1.16.6"
    compile 'com.jakewharton:butterknife:7.0.1'
    apt "com.jakewharton:butterknife:7.0.1"
    compile 'de.greenrobot:greendao:2.1.0'                              //Green Dao library is ORM implementation for Android SQL lite
    compile files('libs/libammsdk.jar')
    compile files('libs/apptimize-android-2.9.1.jar')

    testCompile 'junit:junit:4.12'

    androidTestCompile "com.android.support:support-annotations:23.1.1"
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
    androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.1'
    androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2.1') {
        exclude group: 'com.android.support', module: 'appcompat'
        exclude group: 'com.android.support', module: 'support-v4'
        exclude module: 'recyclerview-v7'
    }
    androidTestCompile 'com.android.support.test:runner:0.4.1'
    androidTestCompile 'com.android.support.test:rules:0.4.1'
}

5 个答案:

答案 0 :(得分:5)

更新2016年11月30日

就像@Jaymes Bearden在下面的评论中说的那样。

使用testBuildType。 Android Studio 2.2,gradle 2.2.2

android {
        testBuildType "yourBuildType"
}

OLD ANSWER

我发现不是解决方案,而是一些问题来源。在我的项目中,我有很多BuildTypes。特别是多个调试版本。

所有内容仅适用于默认的调试构建类型。我认为这是Android Studio内部的一些错误。

我的AS版本 - 2.1

答案 1 :(得分:4)

也许你的Build Variant已经发布了"发布"模式。你必须改变它来调试。 enter image description here

答案 2 :(得分:3)

您需要使用调试版本变体。使用其他构建选项时,espresso将无法识别。

答案 3 :(得分:2)

我很确定,您的配置中缺少某些内容。将您的build.gradle与我的下方进行比较

def ASVersion = '23.1.1'

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.neenbedankt.android-apt'

repositories {
    maven { url 'https://maven.fabric.io/public' }
}


android {
    dataBinding {
        enabled = true
    }
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    defaultConfig {
        applicationId "com.piotr.awesome"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

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

    androidTestCompile "com.android.support:support-annotations:$ASVersion"
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
    androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.1'
    androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2.1') {
        exclude group: 'com.android.support', module: 'appcompat'
        exclude group: 'com.android.support', module: 'support-v4'
        exclude module: 'recyclerview-v7'
    }
    androidTestCompile 'com.android.support.test:runner:0.4.1'
    compile "com.android.support:appcompat-v7:$ASVersion"
    compile "com.android.support:support-v4:$ASVersion"
    compile "com.android.support:design:$ASVersion"

}

同时选择File -> Invalidate cache/restart并尝试第一个选项。

希望有所帮助

答案 4 :(得分:0)

在Android Studio中:

打开运行菜单 - >编辑配置 - 添加新的Android测试配置 - 选择一个模块 添加特定的仪表运行器:

android.support.test.runner.AndroidJUnitRunner

还尝试从SDK Manager更新Android支持库。

希望这有帮助。 您也可以尝试此主题:link

祝你好运!