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

15

在尝试在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。

谢谢。


可能是重复的问题:在Intellij上运行测试:找不到类 - Victor Sergienko
5个回答

2

进入项目结构 -> 模块 -> 你的模块 -> 路径

'输出路径'应该填写,但'测试输出路径'不需要。复制'输出路径'中的文本,粘贴到“测试输出路径”中,但将最后的'build/intermediates/classes/debug'更改为'build/test-classes'。这是因为Gradle Android测试插件当前将所有编译的测试输出(对于所有变体)倾倒到同一个目录中。这意味着当前不完全支持变体。

来源


1

含有问题字符的路径

这与实际问题无关,但搜索者可能会来到这里并且它可能是有帮助的。我的问题是在使用JUnit测试时出现了一个找不到类的错误 ¯_(ツ)_/¯

我在Finder中创建了一个包含跨度年份(2020/2021)的目录路径,它用冒号代替了斜杠(/ → :)

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


1

0

将测试库更改为jUnit4。

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


-10

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接