E.g。我在Maven项目ConnectionDummy
中有一个文件Common
。它仅供Email-Lib
,Scanner
和Common
中的测试使用。注意Common
本身也包括单元测试,但这些文件只是单元测试的助手。它应该Common
test
还是main
?
Maven设置,但我认为这可能是许多技术的共同点。
答案 0 :(得分:2)
这取决于您对生产系统中的测试(实用程序)代码的强烈程度。代码只是坐在那里,什么也不做,对你的生产环境有害?想象一下,您的测试实用程序具有漂亮的注释,例如Spring在运行期间恢复了吗?
我遇到过不在乎的人。我个人对此感到很满意,并且不希望在我的生产环境中使用测试代码。如果那也是你的想法,我在项目中看到的有两种方式可以使用Maven:
测试实用程序代码位于Common的test
文件夹中。您将最终为Common项目构建测试JAR(test-jar
),并且您可能会遇到传递依赖性问题,其中您的公共项目的任何<scope>test</scope>
依赖项都不是您的测试实用程序代码所需的当有人依赖你的测试JAR时,在那里。这是一个潜在的依赖性噩梦,我看到“包含项目”重新定义了很多依赖项,这些依赖项已经被“包含的项目”很好地定义了,但是Maven没有选择它在范围测试中传递
测试实用程序代码进入单独的测试项目,例如CommonTest生成jar
,而不是test-jar
包装。这样,测试实用程序不仅成为依赖项目的“实用程序”,而且成为原始Common项目本身的“实用程序”。通过这样做,您的test
文件夹成为项目的内部事务。也许这就是Maven家伙的意思,为什么其他人会让test-jar
不是标准选项呢? :)