You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android多模块下JUnit测试如何引用其他模块的测试类?

问题根因

你遇到的错误分两种常见场景,对应不同解决方案:

  • 场景1:BaseTest 存放在 :base 模块的主源码目录(src/main/java)下
    你贴的Gradle配置中存在拼写错误,配置块正确拼写为dependencies,你写的是dependences,修正拼写后重新Sync Gradle即可解决。
  • 场景2:BaseTest 存放在 :base 模块的测试源码目录(src/test/java 或 src/androidTest/java)下
    这是最普遍的情况:模块的测试目录代码默认不会对外暴露,普通的implementation、testImplementation依赖都无法获取其他模块测试目录下的代码,需要通过testFixtures配置实现测试代码共享,操作步骤如下:
    1. 在:base模块的build.gradle中开启testFixtures支持:
    android {
        // 保留原有其他配置
        testFixtures {
            enable = true
        }
    }
    
    1. 在:base模块下新建src/testFixtures/java目录,将BaseTest移动到该目录下
    2. 在:ui模块的build.gradle中添加对应依赖:
    dependencies {
        // 单元测试共享依赖
        testImplementation testFixtures(project(":base"))
        // 若有instrumented测试需求,额外添加以下配置
        androidTestImplementation testFixtures(project(":base"))
    }
    
    1. 重新Sync Gradle后运行测试即可。
可选替代方案

如果不想启用testFixtures,也可以直接将BaseTest放到:base模块的主源码目录下,不推荐该方案:测试相关代码会被打包进正式包,会增加包体积,还可能引入不必要的安全风险。

验证排查

如果配置完成仍然报错,可先清理构建缓存后重试:依次点击Android Studio菜单栏 Build > Clean Project → Rebuild Project。

内容的提问来源于stack exchange,提问作者LunaVulpo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:15:11