如何从另一个模块访问测试类以在 junit 测试中使用?

Posted

技术标签:

【中文标题】如何从另一个模块访问测试类以在 junit 测试中使用?【英文标题】:how to access to test class from another module to use in junit test? 【发布时间】:2021-12-27 14:01:54 【问题描述】:

我将当前的单片模块拆分为几个模块::app:ui:base

我使用:base 模块中的类在:ui 模块中编写了测试。

class FooTest : BaseTest 

@Test
fun fooTest() 

所以BaseTest:base 模块中,但是:ui 模块依赖于:base。所以 AS 向我表明没关系。

在 :ui 模块的 gradle 文件中:

dependences 

   implementation project(":base")

但是当测试运行时我得到:

BaseTest: Unresolved reference: BaseTest

我尝试添加:

   testImplementation project(":base")

   androidTestImplementation project(":base")

但没有解决问题。 :(

【问题讨论】:

【参考方案1】:

如果 BaseTest 文件位于 :base 的 main 目录而不是 test 目录中,则此方法有效

例如,您可以拥有一个名为 commontest 的模块,其中包含在模块的主目录中包含这些的常用工具/类,然后要在其他模块中使用它,您可以将其与 testImplementation project(':commontest') 一起包含

【讨论】:

谢谢。现在我知道为什么我的尝试不起作用了。你知道如何强制编译器“看到”测试子文件夹中的类吗? 可能有办法,但我找不到。

以上是关于如何从另一个模块访问测试类以在 junit 测试中使用?的主要内容,如果未能解决你的问题,请参考以下文章

从另一个 JUnit 测试类运行 JUnit 测试类

如何访问另一个程序集中的类以进行单元测试?

JUnit4 中静态内部测试类的嵌套测试设置

如何让 maven surefire 正确执行 JUnit 和 TestNG 测试?

添加一个变量以在整个解决方案中访问

Junit:拆分集成测试和单元测试