我正在执行多模块gradle项目。在我的一个模块中,我具有api依赖项:
api('de.flapdoodle.embed:de.flapdoodle.embed.mongo')
我想将其更改为在所有模块的测试中可见的依赖关系。有testImplementation
依赖性,但没有testApi
。
因为我想使用真实的mongo实例而不是嵌入式实例,所以我不再对生产类路径具有这种依赖性。另一方面,我在依赖于数据访问的不同模块中进行测试-在这种情况下,我想在测试类路径上使用嵌入式mongo运行那些测试。
如何使此依赖性在所有模块测试中可见?
答案 0 :(得分:1)
(在我看来)问题是在多模块项目中的各个模块之间共享测试代码
简短的回答-否-模块之间存在直接的测试依赖关系共享。
要通过内部设置在内部模块之间共享测试代码
官方gradle路线 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)
答案 1 :(得分:-1)