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

标签 android junit gradle

我正在 Android Studio IDE 中开发 android 项目。有什么方法可以在不需要运行 Android VM 的 Android 项目中为某些代码创建测试?我无法将“测试”文件夹标记为测试并在其中创建 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' project refresh failed: The 'java' plugin has been applied, but it is not compatible with the Android plugins.

最佳答案

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Simple-build-files 中的 Android Gradle 插件用户指南android插件与java插件不兼容(只有java-base适用于Android项目):

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

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

关于android - Android Studio 中 android + gradle 的简单 java 单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23053049/

相关文章:

android - 错误 : Inflating class com. google.android.material.textfield.TextInputLayout

android - Ui 设备等到按钮可见

gradle - MapStruct和不可变

android - 添加改造实现依赖项时出现错误gradle [无法从/data/app/打开dex文件]

android - Gradle 模块构建顺序 2

java - Android Button onClick运行方法,不幸的是App已经停止

java - 无法从 String 转换为 float

java - 如何 stub 用@InjectMocks 注释的类的方法?

java - 方法中的 JUnit Mockito 对象初始化

android - 将 Lat lng 与一组数据库数据进行比较的算法