如何在Android Studio中设置robolectric

时间:2014-03-10 11:25:11

标签: android android-studio robolectric android-gradle

我正在使用单位框架robolectric来测试我的Android应用程序。我安装了Android Studio(.4.6)

所有博客都说“为了能够使用Gradle运行Android单元测试,我们需要将Gradle Android Test plug-in添加到构建脚本中。”

但是现在已经弃用了,那么如何在不使用它的情况下设置它,或者我必须使用它。

1 个答案:

答案 0 :(得分:1)

我正在使用com.github.jcandksolutions.gradle:android-unit-test:+

所以在你的root build.gradle(buildscript部分)中:

repositories {
    mavenLocal()
    mavenCentral()
    maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
}
dependencies {
    classpath 'com.android.tools.build:gradle:0.8.+'
    classpath 'com.github.jcandksolutions.gradle:android-unit-test:+'
}

在您应用的build.gradle

apply plugin: 'android'

android {

    [...]

    sourceSets {
        // this sets the root test folder to src/test overriding the default src/instrumentTest
        instrumentTest.setRoot('src/test')
    }
}

apply plugin: 'android-unit-test'

dependencies {
    // example dependencies
    instrumentTestCompile 'junit:junit:4.+'
    instrumentTestCompile 'org.robolectric:robolectric:2.3-SNAPSHOT'
    testCompile 'junit:junit:4.+'
    testCompile 'org.robolectric:robolectric:2.3-SNAPSHOT'
}

请注意,您必须两次声明依赖项(一个用于instrumentTestCompile作用域,一个用于testCompile作用域(用于android-unit-test插件))。至少对于此版本的Android Studio和插件,这是必要的。

然后,您可以使用终端(在Android Studio或独立版本中)使用gradlew测试运行测试。

附注1:我在Windows上与Android Studio终端集成存在一些问题。它没有很好地处理可用的有限水平空间,截断输出。因此,我开始使用ConEmu,避免使用Android Studio中的嵌入式终端和标准cmd.exe。