Java 应用程序的默认众所周知的结构是:
/src/test/java/com/mypackage/mymodule
/src/main/java/com/mypackage/mymodule
我想举一个基本的例子。假设有一个名为“图像”的模块负责创建数据库方案,有一个存储图像的存储库并提供使用该模块的服务。
我想在不同的项目中使用这个模块,所以我只是创建了一个 git 子模块并将它添加到两个项目中。为了完成这个,我也想移动这个模块中的测试,这样每次我构建一个项目时,测试都会被执行。我不想管理其中一个项目中的测试。
有没有推荐的方法来处理这类问题?
通常模块的测试存储在该模块中,但在测试文件夹中。因此,如果您更改模块的某些内部结构,您只需要为该模块运行测试。
假设您有模块 A 以及使用该模块 A 作为依赖项的项目 P1 和 P2。然后模块 A 的单元测试应该在模块 A 的存储库中。在这种情况下,一旦模块 A 的构建成功完成,您就知道该模块工作正常。
如果您对项目 P1 中模块 A 的代码进行了单元测试,那么如果不运行项目 P1 的构建,则无法测试模块 A 的构建。您可能还需要在另一个项目 P2 中对模块 A 中的代码运行重复测试,因为如果有人从项目 P1 中删除模块 A(并且该代码的所有单元测试也将被删除),那么该模块 A 将没有测试完全没有。