2

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

在此处输入图像描述

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

https://github.com/robolectric/deccard

这是 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,我得到了相同的结果

4

2 回答 2

1

可能您必须在模块设置中将测试文件夹标记为“测试文件夹”。Ctrl+Alt+Shift+S 在此处输入图像描述

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

于 2016-01-06T18:46:02.363 回答
1

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

在此处输入图像描述

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

于 2016-01-07T15:26:57.577 回答