【发布时间】:2020-09-29 18:05:36
【问题描述】:
在我的项目中,我目前具有以下结构:
Project:
|->module1
|->module2
|->module3
\->src
项目代码(即src 文件夹中的代码)取决于所有 3 个模块。 module2 和 module3 都依赖于 module1(module1 基本上是在需要时使用的一组健全性检查代码),module3 依赖于 module2。
module2 和module3 的测试以及项目src 中的测试都需要一些测试资源文件。
我的module2 基本上是一个实用程序,它解析输入json 文件并将它们转换为UDF 类,module3 获取这些对象并处理它们。
我还没有在网上找到像我这样的结构的解决方案。
附:我也愿意接受有关我的整体项目结构的建议,如果这样可以简化事情的话。
【问题讨论】:
-
如果你真的需要一个跨越模块边界的资源,这通常表明你没有编写单元测试更多的集成测试如果是这样,那么建议制作一个包含这些资源的单独模块是正确的方法去....除此之外,我不确定您为什么在根级别上创建了一个
src目录,而我还缺少一个pom.xml... -
I haven't found a solution online for a structure like mine.这应该可以很好地表明您遇到了问题。您的结构就是我们喜欢用 Modules(tm) 调用的第一个项目。我们都去过那儿。如果这是一条职业道路,或者您对编码很认真,那么您将想要全力以赴并进行单元测试。每个模块中的所有内容都需要独立存在,没有交叉。你可以做到,这很困难,但每个项目的分离都会变得更容易。撕掉它,做对了。 -
感谢您的两位 cmets。 @khmarbaise,我认为您是对的,我的单元测试使用 json 解析器来解析示例 json,因此我可以在我尝试测试的模块中使用它的输出,这使它更像是一个集成测试。我宁愿模拟这些类并消除我的跨模块测试依赖性。另外,我有一个 pom.xml 我只是没有在问题中显示它。
-
@jnovack,你说得对,不应该有依赖,我想我可能会懒惰地嘲笑那些对象,而是去做我所做的不合适的事情,我不应该嘲笑那些对象使用另一个模块构建它们,它是测试文件。
标签: java maven testing module dependencies