【问题标题】:Run JUnit tests in Gradle for Android app在 Gradle for Android 应用程序中运行 JUnit 测试
【发布时间】:2013-12-08 06:58:56
【问题描述】:

我想在我的 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

【问题讨论】:

  • 现在我收到以下错误:在项目 MyProject 上找不到参数 [文件集合] 的方法 unitTestCompile()。

标签: android junit gradle


【解决方案1】:

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

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

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

unitTest 源集显式。

干杯, 勒内

【讨论】:

  • 哦,是的,我做到了,我移出了“android”块并移到了里面......我只是无法让它工作。
【解决方案2】:

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

【讨论】:

  • 太好了,这拯救了我的一天!应该被接受为正确答案。
猜你喜欢
  • 2014-07-18
  • 2014-01-09
  • 2018-08-19
  • 1970-01-01
  • 2016-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-09
相关资源
最近更新 更多