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

2022-09-03 16:18:01

当我尝试在IntelliJ Idea中运行一些Android JUnit测试时,我遇到了一个问题。

我的项目是一个使用 Gradle 的 Android Library 项目。当我运行测试时,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。

谢谢。


答案 1

转到(G)。Project Structure -> Modules -> your_module -> Paths

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

来源


答案 2

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

module-name/src/test/java/

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

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


推荐