Intellij 16 - 单元测试未被识别为android模块项目的一部分

时间:2016-01-06 17:32:48

标签: android intellij-idea android-gradle intellij-eap

我正在尝试Intellij 16 EAP,我无法在其中正确导入Android项目。 robolectric测试不被认为是项目的一部分

enter image description here

我导入的项目是一个示例项目,可以在github上找到:

https://github.com/robolectric/deckard

这是build.gradle文件:

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
    }
}

repositories {
    jcenter()
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    defaultConfig {
        minSdkVersion 18
        targetSdkVersion 23
        versionCode 2
        versionName "1.0.0-SNAPSHOT"
        applicationId "com.example"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    packagingOptions {
        exclude 'LICENSE.txt'
    }
}

dependencies {
    // Support v4
    compile 'com.android.support:support-v4:23.1.1'

    // Espresso
    androidTestCompile 'com.android.support:support-annotations:23.1.1'
    androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.2.1'

    // Robolectric
    testCompile 'junit:junit:4.12'
    testCompile 'org.hamcrest:hamcrest-library:1.3'
    testCompile 'org.apache.maven:maven-ant-tasks:2.1.3' // fixes issue on linux/mac
    testCompile 'org.robolectric:robolectric:3.0'
}

有关为何发生这种情况的任何线索?

编辑: 1)如果我从gradle中删除所有的android插件,我只需添加java插件,立即识别单元测试并将它们添加到项目中。然后,当我切换回android插件时,intellij会再次删除它。 2)我尝试了Intellij 15和Android Studio 2.0,我得到了相同的结果

2 个答案:

答案 0 :(得分:1)

可能你必须将测试文件夹标记为"测试文件夹"在模块设置中。 Ctrl + Alt +移+ S enter image description here

还可以更好地使用金丝雀频道的Android Studio 2.0。它基于Intellij 15。

答案 1 :(得分:1)

经过一番挖掘,我发现这似乎是预期的做事方式。您只能随时在项目中导入检测测试或单元测试。您可以在“构建变体”窗口中的2之间切换。

enter image description here

我还发现了这段视频https://www.youtube.com/watch?v=vdasFFfXKOY&index=3&list=LLM9iluZir-2dWQTQ-WfJdbw,其中在15:30描述了这种奇怪的行为。他还说它将在Android Studio 2.0中修复,但通过测试显示相反的结果。