2009-10-12 64 views
3

我可能对这个过于沉迷,但我的项目有一个非常结构化的布局,我非常喜欢。拥有这么多结构实际上证明是有用的,这一次,所以我不希望它再次变得混乱。我应该在哪里将共享测试实用程序放在多模块Maven项目中?

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

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

的主要代码住在.impl。接口,其他模块使用的某些枚举和某些数据容器类将不带后缀地位于该包中。 .osgi包中包含OSGi特定代码(BundleActivator s等)和.test包中的单元测试。

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

ETA:我有一个问题是,我得到循环依赖:如果我有两个模块和单元测试中的每个所需要的其他的假的,含有假的模块具有模块的依赖关系包含接口,它是包含单元测试的相同模块。所以,假冒应该与测试一起,但是会导致很多代码重复。或者,对于每个模块,我制作了一个假模块,但这让我觉得它已经失控...

回答

2

您不希望测试代码打包在主代码使用的通用模块中,您?

因此,我的答案似乎很明显:创建一个测试模块,并将其作为依赖与测试范围。

编辑:我把下面的问题的更新中提到的这个问题的答案)

关于循环依赖,怎么样把界面的分离模块中?

+0

那么,如果它位于该公共模块的测试子目录中,则不会打包。不过,我想,依赖范围可能是最重要的方面。 – 2009-10-12 15:42:02

+0

的确如此。但是,如果它位于公共模块的测试子目录中,则不能依赖多个模块中的代码。 – 2009-10-12 15:58:20

相关问题