Android Studio中Android + gradle的简单java单元测试?

时间:2014-04-14 06:08:34

标签: android junit gradle

我正在使用Android Studio IDE中的android项目。有没有办法为android项目中的某些代码创建测试,不需要运行android VM?我无法将'tests'文件夹标记为测试并在其中创建java文件。此外,我在模块中看不到任何与测试相关的设置。

更新

我正在尝试下一个build.gradle:

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.3"

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

    // ...
}

apply plugin: "java"

sourceSets {
    simpleTest {
        java {
            srcDir 'test/java'
        }
        resources {
            srcDir 'test/resources'
        }
        compileClasspath += sourceSets.main.runtimeClasspath
    }
}

task simpleTest(type: Test) {
    description = "Runs simple tests"
    testClassesDir = sourceSets.simpleTest.output.classesDir
    classpath += sourceSets.simpleTest.runtimeClasspath
}

但是我收到了一个错误:

  

12:19:10 Gradle'app'项目刷新失败:            已经应用了'java'插件,但它与Android插件不兼容。

2 个答案:

答案 0 :(得分:0)

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Simple-build-filesandroid插件的Android Gradle插件状态用户指南java插件与java-base插件不兼容(仅适用于{{1}}的Android项目):

重要提示:您应该只应用android插件。应用java插件也会导致构建错误。

Android开发的单元测试从一开始就没有得到很好的支持,您的问题与Android project with Robolectric and Gradle (Android studio)有很大的重叠。在Android Studio版本和Gradle插件更新之间也经常发生变化。

答案 1 :(得分:0)

这在当时是具有挑战性的,但是现在就像1-2-3一样简单,并且是日常例行工作: https://developer.android.com/training/testing/unit-testing/local-unit-tests.html