在Gradle for Android应用程序中运行JUnit测试

时间:2013-11-23 10:16:49

标签: android junit gradle

我想在我的Android应用程序项目中运行简单,简单的JUnit测试,同时使用Gradle编写Activity测试。花了很长时间配置Gradle并使其工作,但是,无论如何,现在我仍然试图让JUnit测试只是编译。

我检查了这个link,但是当我运行gradle时,我收到以下错误:

DummyTest.java:3: error: package junit.
framework does not exist
import junit.framework.Assert;
                      ^
\DummyTest.java:8: error: cannot find symbol
        Assert.assertEquals(5,3);
        ^
  symbol:   variable Assert
  location: class DummyTest

所以,找不到junit ......

以下是我的完整gradle.build文件:

    buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile files('libs/joda-time-2.3.jar')
    compile files('libs/android-support-v4.jar')
    unitTestCompile files("$project.buildDir/classes/release")
    unitTestCompile 'junit:junit:4.8.2'
}

android {
    compileSdkVersion 17
    buildToolsVersion '17.0.0'

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
        }

        unitTest {
            java.srcDir file('test')
            resources.srcDir file('test/res')
        }
    }
    defaultConfig {
        minSdkVersion 14
        versionName '1.0'
        versionCode 1
        targetSdkVersion 17
    }
}

// add the unitTest task
task unitTest(type:Test, dependsOn: assemble) {
    description = "run unit tests"
    testClassesDir = project.sourceSets.unitTest.output.classesDir
    classpath = project.sourceSets.unitTest.runtimeClasspath
}

build.dependsOn unitTest

2 个答案:

答案 0 :(得分:9)

AndroidStudio和新的Android Gradle插件现在提供官方单元测试支持。

Android Studio 1.1+和Android Gradle插件版本1.1.0 +

支持此功能

现在可以将依赖关系声明为testCompile:

dependencies {
  testCompile 'junit:junit:4.12'
  testCompile "org.mockito:mockito-core:1.9.5"
}

此处有更多详情:Unit testing support - Android Tools Project Site

答案 1 :(得分:0)

看看这个stackoverlfow线程:junit testing with gradle for an android project

看起来他正在做你所需要的。

我认为你脚本中的问题是,你没有声明

unitTest sourceset明确。

欢呼声, 勒