Android Studio 2.1: 错误:包 org.junit 不存在

23

更新:这是一个Bug,已经被报告,请给它点个赞: https://code.google.com/p/android/issues/detail?id=209832&thanks=209832&ts=1463161330

我正在Android Studio上设置单元测试。

我已经阅读了文档并按照规定的方式进行了设置。我将我的测试文件夹设置为src/test/java

我创建了一个随机的测试类: enter image description here

import org.junit.Test;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;

public class RandomTestClass
{
    @Test
    public void testTest()
    {
        assertThat(4, is(4));
    }
}

但是,当我运行测试时,我收到以下错误:

错误:找不到包org.junit

我已按照文档中的描述完全设置了我的Gradle:

dependencies {
    // Required -- JUnit 4 framework
    testCompile 'junit:junit:4.12'
    // Optional -- Mockito framework
    testCompile 'org.mockito:mockito-core:1.10.19'
}

其他少数出现此问题的问题似乎说这些依赖项丢失了,但我有它们。

你能想到任何原因,使得当我运行测试时本地单元测试找不到junit文件吗?

注意:我编写代码时能够找到junit类,只有在运行测试时才无法找到junit。


你找到解决方案了吗? - galaxigirl
7个回答

31

我将TestCompile改为androidTestCompile后,它可以正常工作。

testCompile 'junit:junit:4.12'

androidTestCompile 'junit:junit:4.12'

2
testCompile 用于 test 目录,androidTestCompile 用于 androidTest 目录。 - Amir Uval

5

添加这个依赖项来解决你的问题。

testCompile 'junit:junit:4.12'
compile 'junit:junit:4.12'

2

你需要检查的一些事情是 -

  • 在构建变体中,你是否选择了单元测试和调试?
  • 在运行/调试配置中,你的工作目录是否设置为 $MODULE_DIR$ 用于单元测试?
  • 是否通过选择要测试的类,转到导航 -> 测试,让 Android Studio 为你构建测试类来创建测试?

我不知道你所指的“构建变体”是什么。$MODULE_DIR$被设置为工作目录。使用导航->测试来创建测试没有产生任何效果,但我尝试了一下。 - Aggressor
嗯,想要帮忙,但不确定这是否是我没有看到实际代码库就能诊断的问题(这似乎是某种环境问题)。如果有比我更有经验的人看到过这种行为,可以发表意见。关于构建变体,您可以在屏幕左下角的收藏夹上方访问构建变体菜单。 - coder-don

2

我对这个解决方案非常有希望,但它并没有为我解决问题。 - galaxigirl
1
现在使用"compile"。这是唯一的其他方法,它才能正常工作。 - Aggressor

2

我的测试在src/test/java文件夹中,将test.setRoot('test')添加到sourceSets对我有用。

sourceSets {
    test.setRoot('test')
}

0
尝试将构建变体更改为debug

View -> Tool Windows -> Build Variants

更新:当满足所有gradle 依赖项时,仍无法找到 org.junit.Test 时,这实际上可能是原因之一。对我来说至少是这个原因。在“发布”构建类型中不起作用,但在“调试”中起作用。


-1

https://github.com/junit-team/junit4/wiki/Download-and-Install下载(junit-4.12.jar),并将其复制到libs文件夹中:(yourProjectFolder/app/libs

然后在build.gradle(Module: app)中使用以下代码:

dependencies {
...
compile files('libs/junit-4.12.jar')
...
}

然后重新构建您的项目。


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