"未找到班级"从IntelliJ IDEA(Android)运行JUnit测试时

时间:2014-06-13 13:18:44

标签: java android junit intellij-idea

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

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

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

但是ClassTest存在于测试包中。

这是我的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。

感谢。

5 个答案:

答案 0 :(得分:2)

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

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

Source

答案 1 :(得分:0)

一个老问题,但是刚遇到这个问题,发现答案是将JUnit测试文件存储在以下路径中

模块名称 / src / test / java /

如果该目录尚不存在,请创建该目录并将测试文件放在其中。

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

答案 2 :(得分:0)

将测试库更改为jUnit4。

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

答案 3 :(得分:0)

带有问题字符的路径

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

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

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

答案 4 :(得分:-9)

尝试将“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