15

我正在尝试使用 Robolectric 运行单元测试,但 Android Studio 无法识别以下类别:

@RunWith(RobolectricTestRunner.class)

细节:

classpath 'com.android.tools.build:gradle:3.0.0'

我正在导入依赖项:

testImplementation "org.robolectric:robolectric:3.5.1"

和:

android {
    testOptions {
        unitTests {
            includeAndroidResources = true
        }
    }
}

它根本没有出现导入类的选项。我应该添加更多我忘记的依赖项吗?

错误:

 error: package org.robolectric does not exist
 error: package org.robolectric does not exist
 error: package org.robolectric.shadows does not exist
 error: cannot find symbol class RobolectricTestRunner
 error: cannot find symbol variable Robolectric
 error: cannot find symbol variable ShadowApplication
4

4 回答 4

36

我只是通过将测试类放在src \ test文件夹中而不是将其放在文件夹中来src \ androidTest解决了这个问题

于 2017-11-21T17:52:45.747 回答
7

RobolectricGradleTestRunner自 Robolectric 版本 3 起已弃用。只需使用@RunWith(RobolectricTestRunner.class) 看看官方文档

于 2017-11-14T13:31:35.053 回答
7

通常会有2种测试'androidTest'和'test'。

如果你添加依赖androidTestImplementation 'org.robolectric:robolectric:4.3.1',Robolectric 包只会被导入到 'androidTest' 类中。

如果您添加依赖项testImplementation 'org.robolectric:robolectric:4.3.1',它们只能在“测试”类中导入。

于 2020-05-16T14:19:54.517 回答
6

我没有任何运气就遵循了大多数建议。
然后我将点 (.) 更改为双冒号 (::)

曾是 ...

@RunWith(RobolectricTestRunner.class)

变成 ...

@RunWith(RobolectricTestRunner::class)
于 2021-02-15T20:52:27.070 回答