假设我有 3 个模块:
core-module
- 项目的核心模块communication-api
- api 模块公开用于通信服务的 API communication-msg-impl
- communications-api 的具体实现(少数之一)现在
core-module
依赖于基础中的 communication-api
,当将此 core-module
用于具体项目时,用户将依赖项添加到项目中的 communication-api
实现之一。
communication-msg-impl
依赖于 communication-api
我想创建在
core-module
使用 communication-msg-impl
时测试整个流程的测试,但是此测试需要位于 module-core
包中,因为它需要模块的功能,但这意味着我需要添加依赖项communication-msg-impl
到它。这不是我们想要的行为。
为这些集成测试创建完全不同的模块是个好习惯吗?
我可以有多个
communication-msg-impl
模块(每个模块用于不同的实现),所以这意味着我需要为每个实现创建新的“测试”模块。
谢谢各位的解答
我想创建在核心模块使用时测试整个流程的测试 communications-msg-impl,但是这个测试需要在 module-core 包,因为它需要模块的功能
这不一定是真的,您可以将依赖于
communication-msg-impl
的测试放在 communication-msg-impl
模块中,并将 core-module
作为 <scope>test<scope>
依赖项添加到 communication-msg-impl
。由于它只是一个测试依赖项,因此 communication-msg-impl
jar 不会依赖于 core-module
。
为这些集成测试创建完全不同的模块是个好习惯吗?
这是一个可以接受的解决方案。如果您有许多
impl
模块,那么创建一个 integration-test
模块是有意义的,该模块依赖于所有 impl
模块以及 core-module