代码之家  ›  专栏  ›  技术社区  ›  James McMahon

在多模块Maven项目中,我应该将共享测试实用程序放在哪里?

  •  4
  • James McMahon  · 技术社区  · 15 年前

    我可能不会太在意这个,但我的项目有一个非常结构化的布局,我已经非常喜欢。事实证明,拥有如此多的结构是有用的,这次,我不希望它再次变得混乱。

    首先,每个模块由几个Java包组成:

    com.mycompany.mysoftware.modulename
    com.mycompany.mysoftware.modulename.impl
    com.mycompany.mysoftware.modulename.osgi
    com.mycompany.mysoftware.modulename.test
    

    主代码存在于 .impl . 接口、一些枚举和一些由其他模块使用的数据容器类不带后缀地存在于包中。有特定于OSGi的代码( BundleActivator S等) .osgi 包装和单元测试 .test 包裹。

    现在我有了一些类,它们伪造了一个模块,用于测试其他模块。我想知道我是否应该把它们放在 试验 A包 common 已经包含主代码的共享库的模块,或者我是否应该有一个新模块 test 我可以在Maven中为设置不同的依赖范围。

    预计到达时间 :我遇到的一个问题是我得到了循环依赖项:如果我有两个模块,并且每个模块中的单元测试都需要一个假的,则包含假的模块依赖于包含接口的模块,该模块与包含单元测试的模块相同。所以,假代码应该和测试一起使用,但这会导致大量的代码重复。或者,对于每一个模块,我都做了一个假模块,但这让我觉得它失控了……

    1 回复  |  直到 15 年前
        1
  •  2
  •   Pascal Thivent    15 年前

    您不希望将测试代码打包到主代码使用的公共模块中,是吗?

    所以我觉得答案很明显:创建一个测试模块,并将其作为测试范围的依赖项使用。

    ( 编辑: 我正在回答下面问题更新中提到的问题)

    关于循环依赖项,将接口放在单独的模块中怎么样?