繁体   English   中英

从 IntelliJ IDEA (Android) 运行 JUnit 测试时“找不到类”

[英]“Class not found” when running JUnit tests from IntelliJ IDEA (Android)

尝试在 IntelliJ Idea 中运行一些 Android JUnit 测试时遇到问题。

我的项目是一个使用 Gradle 的 Android 库项目。 当我运行我的测试时,IntelliJ 抱怨以下错误:

Class not found: "com.domain.app.ClassTest"

但是ClassTest存在于 test 包中。

这是我的 build.gradle:

apply plugin: 'android-library'

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

dependencies {
    repositories {
        mavenCentral()
        maven {
            url 'https://oss.sonatype.org/content/repositories/snapshots/'
        }
    }

    compile 'com.android.support:support-v4:19.1.+'

    compile('junit:junit:4.11') {
        exclude module: 'hamcrest-core'
    }
}

android {
    compileSdkVersion 18
    buildToolsVersion "19.0.3"

    defaultConfig {
        versionName "1.0"
        versionCode 1

        targetSdkVersion 18
    }

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

        androidTest {
            java.srcDirs = ['src/test/java']
        }
    }

    lintOptions {
        abortOnError false
    }
}

我的项目结构:

src
|_ main
   |_ java
     |_ com.domain.app
|_ test
   |_ java
      |_ com.domain.app

我正在使用 IntelliJ IDEA 13.1.1。

谢谢。

转到Project Structure -> Modules -> your_module -> Paths

应填写“ Output path ”的值,但不会填写“ Test output path ”。 复制“ Output path ”中的文本,粘贴到“测试输出路径”中,但将最终的“ build/intermediates/classes/debug ”更改为“ build/test-classes ”。 这是因为 gradle android 测试插件当前将所有编译的测试输出(对于所有变体)转储到同一目录中。 这意味着不完全支持当前的变体。

来源

老问题,不过刚好碰到这个问题,发现答案是将JUnit测试文件存放在如下路径

模块名称/src/test/java/

如果该目录尚不存在,请创建它并将您的测试文件放在那里。

来源: https : //developer.android.com/training/testing/unit-testing/local-unit-tests

将测试库更改为 jUnit4。

也许在创建测试类时你选择了不同的测试库而不是 jUnit

带有问题字符的路径

这与实际问题无关,但搜索者可能会来到这里,这可能会有所帮助。 我的问题是找不到类错误,使用 JUnit 测试 ¯_(ツ)_/¯

我在 finder 中创建了一个包含代表跨年 (2020/2021) 的目录的路径,并将正斜杠替换为冒号 (/ → :)

用下划线替换冒号解决了这个问题。

尝试将“test”重命名为“androidTest”

src |_ main |_ java |_ com.domain.app |_ **androidTest** |_ java |_ com.domain.app

http://tools.android.com/tech-docs/new-build-system/migrating_to_09

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM