库中的实用程序测试类是应该进行测试还是主要?

时间:2013-04-10 17:37:28

标签: unit-testing maven project-structure

E.g。我在Maven项目ConnectionDummy中有一个文件Common。它仅供Email-LibScannerCommon中的测试使用。注意Common本身也包括单元测试,但这些文件只是单元测试的助手。它应该Common test还是main

Maven设置,但我认为这可能是许多技术的共同点。

1 个答案:

答案 0 :(得分:2)

这取决于您对生产系统中的测试(实用程序)代码的强烈程度。代码只是坐在那里,什么也不做,对你的生产环境有害?想象一下,您的测试实用程序具有漂亮的注释,例如Spring在运行期间恢复了吗?

我遇到过不在乎的人。我个人对此感到很满意,并且不希望在我的生产环境中使用测试代码。如果那也是你的想法,我在项目中看到的有两种方式可以使用Maven:

  1. 测试实用程序代码位于Common的test文件夹中。您将最终为Common项目构建测试JAR(test-jar),并且您可能会遇到传递依赖性问题,其中您的公共项目的任何<scope>test</scope>依赖项都不是您的测试实用程序代码所需的当有人依赖你的测试JAR时,在那里。这是一个潜在的依赖性噩梦,我看到“包含项目”重新定义了很多依赖项,这些依赖项已经被“包含的项目”很好地定义了,但是Maven没有选择它在范围测试中传递

  2. 测试实用程序代码进入单独的测试项目,例如CommonTest生成jar,而不是test-jar包装。这样,测试实用程序不仅成为依赖项目的“实用程序”,而且成为原始Common项目本身的“实用程序”。通过这样做,您的test文件夹成为项目的内部事务。也许这就是Maven家伙的意思,为什么其他人会让test-jar不是标准选项呢? :)