相当于 gradle 中测试依赖的 api?

2024-05-10

我有多模块 gradle 项目。在我的模块之一中,我有 api 依赖项:

api('de.flapdoodle.embed:de.flapdoodle.embed.mongo')

我想将其更改为在所有模块的测试中可见的依赖项。有一个testImplementation但没有依赖性testApi.

我不能再对生产类路径有这种依赖,因为我想使用真正的 mongo 实例而不是嵌入式实例。另一方面,我在依赖于数据访问的不同模块中进行了测试 - 在这种情况下,我想在测试类路径上使用嵌入式 mongo 运行这些测试。

如何使这种依赖关系在所有模块测试中可见?


问题(在我看来)是在多模块项目中跨模块共享测试代码

简短的回答 - 否 - 模块之间有直接的测试依赖共享。

通过构建设置在内部模块之间共享测试代码

官方gradle路线 https://docs.gradle.org/current/userguide/java_testing.html#sec:java_test_fixtures https://docs.gradle.org/current/userguide/java_testing.html#sec:java_test_fixtures

简单的黑客攻击

testImplementation files(project(':core-module').sourceSets.test.output.classesDirs)

将以上行单独添加到您需要的位置或根目录中subprojects()具备适当的条件

*还有其他可能的路线*
例如:通过配置child.testImplementation extends parent.testImplementation (or runtime)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

相当于 gradle 中测试依赖的 api? 的相关文章

随机推荐