Android Studio中无法识别"RobolectricTestRunner.class"

Rob*_*iro 11 android unit-testing robolectric android-gradle-plugin robolectric-gradle-plugin

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

@RunWith(RobolectricTestRunner.class)
Run Code Online (Sandbox Code Playgroud)

细节:

classpath 'com.android.tools.build:gradle:3.0.0'
Run Code Online (Sandbox Code Playgroud)

我正在导入依赖:

testImplementation "org.robolectric:robolectric:3.5.1"
Run Code Online (Sandbox Code Playgroud)

和:

android {
    testOptions {
        unitTests {
            includeAndroidResources = true
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它似乎没有出现导入类的选项.我应该添加任何我忘记的依赖项吗?

错误:

 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
Run Code Online (Sandbox Code Playgroud)

Rob*_*iro 23

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

  • 非常好。非常感谢。但为什么会这样呢?有没有办法将其配置为接受 src\androidTest? (3认同)
  • 老兄...你救命 (2认同)

mob*_*bob 10

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

曾是 ...

@RunWith(RobolectricTestRunner.class)
Run Code Online (Sandbox Code Playgroud)

变成 ...

@RunWith(RobolectricTestRunner::class)
Run Code Online (Sandbox Code Playgroud)


Fak*_*her 7

RobolectricGradleTestRunner从Robolectric版本3开始不推荐使用.只需使用@RunWith(RobolectricTestRunner.class) 看看官方文档.


Man*_*iao 6

通常会有两种测试“androidTest”和“test”。

如果您添加依赖项,如androidTestImplementation 'org.robolectric:robolectric:4.3.1',Robolectric 包将仅在 'androidTest' 类中导入。

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