Android Studio:无法在单元测试中使用 src 中的类

Gas*_*rdP 7 junit unit-testing gradle android-studio

自上次更新(Android Studio?或 Gradle?)以来,我无法从测试类中的 prod 导入代码。

几个月前,测试运行没有任何问题。我可以在命令行中使用 gradle 或使用 AndroidStudio 测试运行程序来启动测试。而且它工作得很好:当代码正常时它会通过,当有错误时它会失败。

但自动完成功能不起作用,类、方法......都是红色的。我无法单击对象来导航到声明......等等。

AndroidStudio 自动快速修复是:“add dependency on module xxx”,在 gradle 文件中添加一行: implementation project(path: ':app')

我在 gradle 6.1.1 或 7.2.1 的几个项目上遇到同样的问题

AndroidStudio 版本为:Chipmunk,2021.2.1 补丁 1,构建于 2022 年 5 月 18 日

单元测试,位于 app/src/test/java/com/apackage/ASimpleTest.kt

package com.apackage


import org.junit.Test
import kotlin.test.assertEquals

class ASimpleTest {

    @Test
    fun aTest(){

        val plop = AClass()
        assertEquals(1, plop.aMethod())
    }
}
Run Code Online (Sandbox Code Playgroud)

app/src/main/java/com/apackage/AClass.kt 中的类:

package com.apackage

class AClass {
    fun aMethod() = 1
}
Run Code Online (Sandbox Code Playgroud)

我在与测试相同的文件夹中调用方法没有问题。问题是 test/main 文件夹调用 src/main

小智 2

您必须将'src/test/java'和添加'src/main/java'到应用程序中的 sourceSetsbuild.gradle

android {
    // Other configuration options...

    sourceSets {
        test {
            java.srcDirs = ['src/test/java', 'src/main/java']
        }
    }
}

Run Code Online (Sandbox Code Playgroud)